软件测试——期末复习
第一章:软件测试生命周期
1. 什么是软件测试
答案:
为了发现程序中的错误而执行程序的过程。 软件测试是一种用来促进鉴定软件的正确性、完整性、安全性和品质的过程,也就是在规定的条件下对程序进行操作以发现程序中的错误,衡量软件的品质并对其是否能满足设计要求进行评估的过程。
(软件测试基础教程P13)
测试的目的:
- 发现缺陷;
- 增加对质量的信心;
- 为决策提供信息;
- 预防缺陷;
2. 为什么要做软件测试
答案(软件测试基础教程P5):
一款软件开发出并不能保证其稳定性与毫无漏洞,这就需要进行软件的测试,找出该软件的缺陷。软件测试的目的理解产品的功能要求,检查软件有没有错误,决定软件是否具有稳定性。软件测试是软件开发生命周期中关键的质量保证活动之一。实施严格规范的测试有助于发现软件开发过程中不同阶段的缺陷,对软件系统和文档进行严格的测试,可以减少软件系统在运行环境中的风险。
软件缺陷会导致严重的后果,那么为什么会有软件缺陷
- 人的因素:人总是容易犯错,因此人设计的代码和文档都可能引入缺陷。
- 其他因素:辐射、电磁化、硬件老化和污染
测试过程中的一些术语:
-
错误:
-
缺陷:
-
失效:
失效除了是由缺陷造成的外,也可能是由于环境条件引起的。
术语之间的关系:
(软件测试基础教程P5,P6)
(此处可能考判断填空题)
静态测试发现缺陷,动态测试发现失效。
虽然缺陷可能会引起失效,但不是所有的缺陷都会引起失效。
3. 软件测试的基本原则
(软件测试基础教程P17,P18)
答案:
-
穷尽测试是不可能的
-
测试只能显示缺陷的存在
-
测试应尽早介入
-
缺陷的集群性,即测试对象中发现的80%的缺陷来自20%的模块;
-
杀虫剂效应,即同样的测试用例被反复使用多次,将不能发现新的缺陷;
-
测试活动依赖于测试上下文,比如安全性相关的测试对象和一般的商业对象,测试活动是完全不一样的;
-
没有失效不代表系统是可用的
4. 软件测试基本过程有哪些
(软件测试基础教程P19~P27)
答案:
-
测试计划和控制阶段
-
测试分析和设计阶段
-
测试实现和执行阶段
-
评估出口准则和报告
-
测试活动结束
第二章:软件生命周期中的测试
1. 软件开发模型
瀑布模型、V模型以及增量迭代模型的关系、应用场景以及各自的优缺点。
- 瀑布模型:
应用场景:适合于客户的需求较明确的情况下。
优点:一种有效的管理视图。每项开发活动均处于一个质量环节。 文档驱动,以项目阶段评审和文档控制为手段有效的对整个开发过程进行指导。如果能够正确使用瀑布模型,可以节省大量的时间和金钱。
缺点:缺乏灵活性,太过于理想化。 如果开发其中,客户难以明确需求,需求错误在后期就难以纠正。
- V模型
V模型的优缺点(测试重点)
1、优点:包含了底层测试(单元测试)和高层测试(系统测试);
清楚的标识了开发和测试的各个阶段;
自上而下逐步求精,每个阶段分工明确,便于整体项目的把控。
2、缺点:自上而下的顺序导致了,测试工作在编码之后,就导致错误不能及时的进行修改;
实际工作中,需求经常变化,导致v模型步骤,反复执行,返工量很大,灵活度较低。
- 增量迭代模型
优点:
1.缩短时间
2.开发人员与用户可以通过原型充分的交流;
3.有利于用户的培训和开发的同步。
4.加入构建必须不破坏已构造好的体系结构。
5.模型的灵活性可以使其适应需求的变化
缺点:很容易退化成边做边改模型。
应用场景:技术风险较大、用户需求较为稳定的软件系统
(软件测试基础教程P42,P43)
A-螺旋模型
优点:兼顾了快速原型迭代的特征以及瀑布模型的系统化于严格监控。引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减少损失。
缺点:(1)不能让用户确信这种演化方法结果是可控的。(2)建设周期长
应用场景:适用于大型复杂的系统
B-RUP模型
C-敏捷开发模型
2. 测试级别(分清哪个测试是干什么用的)
(软件测试基础教程P46~P55)
- 2.1 组件测试(单元测试)
- 2.2 集成测试
- 2.3 系统测试
- 2.4 验收测试
测试类型:
(软件测试基础教程P57~P60)
第三章:静态技术
评审
P65
- 正式评审过程
- 角色和职责
P69
- 评审类型
P71
- 评审成功的因素
P74 1-9