第12章软件测试

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在测试阶段测试人员努力设计出一系列测 试方案,目的却是为了“破坏”已经建造 好的软件系统—竭力证明程序中有错误不 能按照预定要求正确工作。
暴露问题并不是软件测试的最终目的,发
现问题是为了解决问题,测试阶段的根本
目标是尽可能多地发现并排除软件中潜藏
的错误,最终把一个高质量的软件系统交
给用户使用。
测试的工作量
一般性软件其测试工作量大约占整个开发 工作量的40%
系统软件或关系到人的生命财产安全的重 要软件,其测试工作量通常可能达到整个 开发工作量的3—5倍
软件测试原则
(1) 应该把测试贯穿在整个开发过程之中。事实上从
需求分析阶段开始,每个阶段结束之前都要进行阶 段审查,目的是尽早发现和纠正错误。 概要设计 时应完成测试计划,详细的测试用例定义可在设计 模型确定后开始,所有测试可在任何代码被产生之 前进行计划和设计。
12
来自百度文库
开发前期出现错误的扩展
测 编 设 需求
试 码 计 分析 计划 A B
13
(2)测试用例应由输入数据和预期 的输出结果两部分组成,并兼顾合 理的输入和不合理的输入数据。在
实际操作中可以列出一张电子表格,包括每 个测试用例的编号、类型、输入数据、预期 输出结果、实际输出结果、出错原因分析。
14
(3)穷举测试是不可能的。 所谓穷举测试就是把程序所有可能 的执行路径都检查一遍的测试。
18
测试原则续
(5)在设计测试用例时,应该包括有效的、期望的 输入情况,也要包括无效的和不期望的输入情况。 即能够验证程序正常运行的合理输入,也能够验证 对异常情况处理的不合理输入数据以及临界数据输 入。
在测试时,人们常常过多地考虑合法和期望的输入条件,以 检查程序是否做了它应该做的事情,而忽视了不合法的和 预想不到的输入条件。
6
测试的定义
从广义上讲是指软件产品生存周期内所有的检 查、评审和确认活动
从狭义上讲,软件测试是为了发现错误而执行 程序的过程
软件测试是根据软件开发各阶段的规格说明和 程序内部结构而精心设计的一批测试用例,用这 些测试用例运行程序,以发现程序错误的过程。
一个测试用例是一组输入数据及其对应的预 期输出结果。
15
例:输入 三条边长
可采用的测试用例数 (设字长16位)
=216 X216 X216 ≈3X1014
执行时间: 设测试一次需1ms 共需一万年.
(4)程序员应该尽量避免检查自己编 写的代码。
为了达到最佳的测试效果,应该由独立的 第三方从事测试工作。 所谓“最佳效果”是指有最大可能性发现 错误的测试。开发软件的软件工程师(心 理)并不是完成全部测试工作的最佳人选 (通常他们主要承担模块测试工作)。
验证和有效性确认
验证(Verification):通过检查和提供客观证据, 表明规定要求已经满足的认可。
在软件生存期各个阶段,验证是指检测各个阶段结束时的工 作产品是否满足对上一阶段的结束后的工作产品所定义的规 格的验证过程
软件测试的对象
软件测试并不等于程序测试。软件测试 应贯穿于软件定义与开发的整个期间。
需求分析、概要设计、详细设计以及程 序编码等各阶段所得到的文档,包括需 求规格说明、概要设计规格说明、详细 设计规格说明以及源程序,都应成为软 件测试的对象。
为把握软件开发各个环节的正确性,需 要进行各种确认和验证工作。
用户在使用系统时,输入一些错误指令和参数是经常发生 的,如果软件遇到这种情况不能做出适当的反应,给出相应 的提示信息,可能会误导用户,甚至会造成严重损失。
测试原则续
(6)软件中遗留的错误数量与已经发现 的错误数量成正比。根据这个规律对测试 中发现错误成堆的模块更要仔细测试。例 如,在某个著名的操作系统中,44%的错 误仅与4%的模块有关。
5
• 通常想象的“测试是为了表明程序是正确 的”,“成功的测试是没有发现错误的测试” 是不正确的。
• 测试的目的决定了测试方案的设计。如果为 了表明程序是正确的而进行测试,就会设计一 些不易暴露错误的测试方案;相反,如果测试 是为了发现程序中的错误,就会力求设计出最 能暴露错误的测试方案。
测试决不能证明软件是正确的,也不能证明错误的 不存在,它只能证明错误的存在。
10
软件测试原则
软件测试不等于程序测试。
据美国一家公司统计,查出的软件错误中,属于需求分析 和软件设计的错误约占 64%,属于程序编写的错误仅占 36%。 程序编写的许多错误是“先天的”。
11
决定软件与系统的配合关系

需求分析


概要设计
开 发
详细设计

编码


单元测试


集成测试


确认测试
系统测试
2: 5
Windows 2000 约 250人 约 1700人 约 3200人
1: 9
为什么需要这么多人、花这么多代价进行测 试?目的何在?
“证明程序正确!” 对吗?
Myers对软件测试目的提出以下观点: (1)软件测试是为了发现错误而执行程序的过程。 (2)一个好的测试用例能够发现至今尚未发现的错误。 (3)一个成功的测试是发现了至今尚未发现的错误的测 试。
第12章 软件测试
第12章 软件测试
要求
1)软件测试的概念
掌握
2)黑盒测试和白盒测试方法
掌握
3)单元测试过程
理解
4)集成测试,系统测试,验收测试的 了解
基本过程
12.1软件测试的概念 软件测试的目的?
1963年, 美国,飞往火星的火箭爆炸,损失$ 10 million。 原因: FORTRAN循环:
(7)回归测试的关联性要特别引起注意, 修改一个错误而引起更多错误的现象并不 少见。
测试原则续
(8)严格执行测试计划。在测试之前应 该有明确的测试计划,内容包括:要测试 的软件功能和内容、测试用例和预期结果、 测试的进度安排、需要的工具和资源、测 试控制方式和过程等。
(9)做好测试记录,为统计和维护提供 基础数据
DO 5 I = 1, 3 误写为 DO 5 I = 1.3
软件测试的工作量约占整个项目工作量的40%左右,对于要求 极高的系统测试工作量还要成倍增加。
微软Exchange 2000和Windows 2000中的人员结构
项目经理 开发人员 测试人员 测试人员/开发人员
Exchange 2000 25人 140人 350人
相关文档
最新文档