文档介绍:软件工程第七章(3-1)软件测试
方海光
首都师范大学教育技术系
2006年10月
Contents
软件测试概述
软件危机()
软件测试方法与技术
软件测试过程
2
Contents
软件测试概述
3
统计资料表明,测试的工作量约占整个项目开发工作量的40%左右,对于关系到人的生命安全的软件(如飞机飞行自动控制系统),测试的工作量还要成倍增加。
那么,为什么要花这么多代价进行测试? 其目的何在? 它是“说明程序能正确地执行它应有的功能”,还是“表明程序没有错误”。如果是这样一个目的,就要朝着“证明程序正确”这个目标靠拢,无意识地选择一些不易暴露错误的例子。:
4
(1) 软件测试是为了发现错误而执行程序的过程。(2) 好的测试用例能够发现至今尚未发现的错误。(3) 成功的测试是发现至今尚未发现的错误的测试。
因此,测试阶段的基本任务应该是根据软件开发各阶段的文档资料和程序的内部结构,精心设计一组“高产”的测试用例,利用这些用例执行程序,找出软件中潜在的各种错误和缺陷。
5
软件测试的目的
基于不同的立场,存在着两种完全不同的测试目的。
从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。
从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。
6
换言之,测试的目的是
想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。
测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。
实施测试收集到的测试结果数据为可靠性分析提供了依据。
测试不能表明软件中不存在错误,它只能说明软件中存在错误。
7
软件测试的原则
1. 应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。
2. 测试用例应由测试输入数据和对应的预期输出结果这两部分组成。
3. 程序员应避免检查自己的程序。
4. 在设计测试用例时,应包括合理的输入条件和不合理的输入条件。
8
5. 充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。
6. 严格执行测试计划,排除测试的随意性。
7. 应当对每一个测试结果做全面检查。
8. 妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。
9
软件测试的对象
软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。
需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。
10