2016年立刻就要过去了,做为一个没有测试培训经验就直接上岗的测试人员,感受有必要对本身这近一年的测试工做作个总结。一是回顾下这一年作了什么,二是为之后的工做提供个借鉴,让本身能在测试道路上走的更加清晰。程序员
可是发现本身竟然无从提及......尴尬之余想起一种另类的总结,拿几套面试题来谈一谈,由于本身也没有培训经历,理论方面就看过一本Software Testing,就结合本身的实际工做来检验下可否经过面试吧。面试
软件测试面试题和答案数据库
1、判断题安全
1.软件测试的目的是尽量多的找出软件的缺陷。(Y)服务器
2.Beta测试是验收测试的一种。(Y)并发
3.验收测试是由最终用户来实施的。(N)性能
4.项目立项前测试人员不须要提交任何工件。(Y)单元测试
5.单元测试能发现约80%的软件缺陷。(Y)测试
6.代码评审是检查源代码是否达到模块设计的要求。(N)编码
7.自底向上集成须要测试员编写驱动程序。(Y)
8.负载测试是验证要检验的系统的能力最高能达到什么程度。(N)
9.测试人员要坚持原则,缺陷未修复完坚定不予经过。(N)
10.代码评审员通常由测试员担任。(N)
11.咱们能够人为的使得软件不存在配置问题。(N)
12.集成测试计划在需求分析阶段末提交。(N)
判断题解析总结:
1.软件测试的目的。曾在Software Testing这本书中看到,软件测试的目的不是发现全部缺陷提交一个完美的产品,软件测试的目的是在软件上线前尽量早的发现更多的bug。那么这里我还想谈下为何要尽早的发现bug。
以咱们公司为例,一个bug的生命周期包括提交→确认→分配→设计→处理→申请发版→已发版→测试经过→关闭,一旦在回归测试过程当中发现问题,那么会将这个BUG打回到确认状态再进行一次处理。这是时间的浪费,这是成本的增长。若是在设计及处理阶段就能把问题处理的干净利落,那么会省不少麻烦,而作到这一点可能就还须要在处理完成后添加单元测试,或者是Code Review,可是这样也会增长成本,而且对测试人员的要求能力更高,否则无法体现出这个位置的价值。没有单元测试或Code Review那就须要开发人员提升自测的质量了。
2.验收测试:验收测试包括alpha测试,beta测试,验收测试。我并无这三种验收测试的理论概念,先来看下百度是怎么定义这三种测试的:
Alpha测试是由用户在开发环境下进行的测试,也能够是开发机构内部的用户在模拟实际操做环境下进行的测试。开发者坐在用户旁边,这是在开发者受控的环境下 进行的测试。由开发者随时记录下错误状况和使用中的问题并进行修改。
Beta测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试,它是在系统根本完成时进行的测试。开发者一般不在测试现场,这是在开发者没法控制的环境下进行的测试。由用户记录下遇到的全部问题,按期向开发者报告。beta测试是一模拟真实的使用环境从而发现缺陷的一种测试
验收测试是以用户为主的测试,软件开发和QA人员也应该参加,测试通常在用户所在地进行,由用户验证软件产品是否知足了全部的需求的一系列的验收测试工 做。仅限于作项目的公司,部门内部测试稳定后,根据合同中需求由发包商进行验收测试。验收测试的目的是为了以发现”未实现的需求”为目的,以评估”适合使用”为目标, 该类测试的不是以发现缺陷为主要目的。
我认为不一样公司对于验收测试的方法是不同的。以咱们公司的项目为例:咱们的验收测试通常分为两种,普通专题类验收测试和大型项目更新验收测试。当客户须要上线一个新功能(专题),当咱们测试人员测试完毕,会提供给客户一个相对稳定的服务器环境进行测试,客户将问题直接反馈给测试人员,再由咱们测试人员与开发沟通;大型项目更新换代测试的话,这个就须要客户驻场测试,来到咱们公司进行验收测试,会直接与开发及咱们测试进行沟通。结合实际工做来讲,咱们的验收测试并无说很好的吻合这三种测试的哪种,我认为这个要根据项目的实际须要来。alpha测试有点像咱们外派测试人员,beta测试有点像咱们的专题验收测试,而验收测试则与客户来咱们公司进行驻场验收有点相像。
3.测试流程规范:上面已经提到了咱们bug管理生命周期,其实这也是一个测试流程规范。在bug处理完成阶段,开发会进行代码评审;在测试阶段,咱们会有测试案例评审;在发版上线阶段,咱们还会有开发和测试共同的bug评审。通过这一系列工做,一个bug的修改或者一个新功能才会提交到生产环境。那么一样也会遇到这样一个尴尬的问题,若是一个功能已经到了计划上线日期,还有缺陷存在,那究竟是上仍是不上。相信不少测试人员都会遇到这样的问题。那在咱们这边是怎么处理的呢?在这里首先咱们还要有这样一个概念:软件缺陷等级。在简答题中也有问到。
A类—严重错误,包括如下各类错误: 1. 因为程序所引发的死机,非法退出 2. 死循环 3. 数据库发生死锁 4. 因错误操做致使的程序中断 5. 功能错误 6. 与数据库链接错误 7. 数据通信错误
B类—较严重错误,包括如下各类错误: 1. 程序错误 2. 程序接口错误 3. 数据库的表、业务规则、缺省值未加完整性等约束条件
C类—通常性错误,包括如下各类错误: 1. 操做界面错误(包括数据窗口内列名定义、含义是否一致) 2. 打印内容、格式错误 3. 简单的输入限制未放在前台进行控制 4. 删除操做未给出提示 5. 数据库表中有过多的空字段
D类—较小错误,包括如下各类错误: 1. 界面不规范 2. 辅助说明描述不清楚 3. 输入输出不规范 4. 长操做未给用户提示 5. 提示窗口文字未采用行业术语 6. 可输入区域和只读区域没有明显的区分标志
E类—测试建议
对于一个不完美的功能,咱们会评审是否知足上线需求,在不影响正常的用户体验的状况下,是可让软件带着缺陷上线的,可是若是有重大缺陷BUG级别,那是没办法上线的。若是非要上线,测试人员必定要记得写一份测试报告,将软件缺陷及影响程度详细记录发给上级领导,这个锅不能随便背!
2、选折
1.软件验收测试的合格经过准则是:(ABCD)
A.软件需求分析说明书中定义的全部功能已所有实现,性能指标所有达到要求。
B.全部测试项没有残余一级、二级和三级错误。
C.立项审批表、需求分析文档、设计文档和编码实现一致。
D.验收测试工件齐全。
2.软件测试计划评审会须要哪些人员参加?(ABCD)
A.项目经理
B.SQA负责人
C.配置负责人
D.测试组
3.下列关于alpha测试的描述中正确的是:(AD)
A.alpha测试须要用户表明参加
B.alpha测试不须要用户表明参加
C.alpha测试是系统测试的一种
D.alpha测试是验收测试的一种
4.测试设计员的职责有:(BC)
A.制定测试计划
B.设计测试用例
C.设计测试过程、脚本
D.评估测试活动
5.软件实施活动的进入准则是:(ABC)
A.需求工件已经被基线化
B.详细设计工件已经被基线化
C.构架工件已经被基线化
D.项目阶段成果已经被基线化
3、添空
1.软件验收测试包括:正式验收测试,alpha测试,beta测试。
2.系统测试的策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的能够合在一块儿,分开写只要写出15就满分哦)
3.设计系统测试计划须要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划。
4.对面向过程的系统采用的集成策略有:自顶向下,自底向上两种。
5.(这题出的有问题哦,详细的5步骤为~~)经过画因果图来写测试用例的步骤为:
(1)分析软件规格说明描述中,哪些是缘由(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每一个缘由和结果赋予一个标识符。
(2)分析软件规格说明描述中的语义,找出缘由与结果之间,缘由与缘由之间对应的是什么关系?根据这些关系,画出因果图。
(3)因为语法或环境限制,有些缘由与缘由之间,缘由与结果之间的组合状况不可能出现。为代表这些特殊状况,在因果图上用一些记号标明约束或限制条件。
(4)把因果图转换成断定表。
(5)把断定表的每一列拿出来做为依据,设计测试用例。
4、简答(资料是搜集整理的,感谢前辈的解题)无
1.区别阶段评审的与同行评审
同行评审目的:发现小规模工做产品的错误,只要是找错误;
阶段评审目的:评审模块阶段做品的正确性可行性及完整性
同行评审人数:3-7人人员必须通过同行评审会议的培训,由SQA指导
阶段评审人数:5人左右评审人必须是专家具备系统评审资格
同行评审内容:内容小通常文档< 40页,代码< 500行
阶段评审内容:内容多,主要看重点
同行评审时间:一小部分工做产品完成
阶段评审时间:一般是设置在关键路径的时间点上!
2.什么是软件测试
为了发现程序中的错误而执行程序的过程
3简述集成测试的过程
系统集成测试主要包括如下过程:
1.构建的确认过程。
2.补丁的确认过程。
3.系统集成测试测试组提交过程。
4.测试用例设计过程。
5.测试代码编写过程。
6. Bug的报告过程。
7.每周/每两周的构建过程。
8.点对点的测试过程。
9.组内培训过程。
4怎么作好文档测试
仔细阅读,跟随每一个步骤,检查每一个图形,尝试每一个示例。P142
检查文档的编写是否知足文档编写的目的
内容是否齐全,正确
内容是否完善
标记是否正确
5白盒测试有几种方法
整体上分为静态方法和动态方法两大类。
静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义
动态:语句覆盖、断定覆盖、条件覆盖、断定条件覆盖、条件组合覆盖、路径覆盖。
6系统测试计划是否须要同行审批,为何
须要,系统测试计划属于项目阶段性关键文档,所以须要评审。
7Alpha测试与beta的区别
Alpha测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少许的设计变动。这种测试通常由最终用户或其它人员完成,不能由程序或测试员完成。
Beta测试当开发和测试根本完成时所作的测试,最终的错误和问题须要在最终发行前找到。这种测试通常由最终用户或其它人员完成,不能由程序员或测试员完成。
8比较负载测试,容量测试和强度测试的区别
负载测试:在必定的工做负荷下,系统的负荷及响应时间。
强度测试:在必定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所形成的影响。
容量测试:容量测试目的是经过测试预先分 析出反映软件 系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试 还将肯定测试对象在给定时间内可以持续处理的最大负载或工做量。容量测试的目的是使系统承受超额的数据容量来发现它是否可以正确处理。容量测试是面向数据 的,而且它的目的是显示系统能够处理目标内肯定的数据容量。
9测试结束的标准是什么?
用例所有测试。
覆盖率达到标准。
缺陷率达到标准。
其余指标达到质量标准
实际工做总结:测试案例执行完毕;测试覆盖率达到标准;缺陷率达到标准;验收测试完毕,提交验收报告。
10描述软件测试活动的生命周期?
测试周期分为计划、设计、实现、执行、总结。其中:
计划:对整个测试周期中全部活动进行规划,估计工做量、风险,安排人力物力资源,安排进度等;
设计:完成测试方案,从技术层面上对测试进行规划;
实现:进行测试用例和测试规程设计;
执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。
总结:记录测试结果,进行测试分析,完成测试报告。
实际工做总结:上面谈到了bug的生命周期,这里谈的是测试活动生命周期。在个人测试工做中,是这样的:
1.肯定测试范围。(大致知道本身要测试哪些东西)
2.制定测试计划。(大致分析出须要多长时间能够测试完成并制定计划)
3.若是做为一个测试团队来讲的话,多人共同测试的话还须要进行测试分工。
4.拿到具体的测试功能模块,就要进行测试案例设计编写了。
5.进行测试案例评审。
6.执行测试案例。
7.测试总结。
11软件的缺陷等级应如何划分?
见判断分析
------------------------------------------------------未完待续----------------------------------------------------------------