第十一讲 测试( Testing
第 十 一 讲 测试(Testing)
本讲(第七章)的主要内容 软件测试及其目标 软件测试准则 测试方法 四、测试阶段的信息流 五、测试阶段
本讲(第七章)的主要内容 一、软件测试及其目标 二、软件测试准则 三、测试方法 四、测试阶段的信息流 五、测试阶段
、 Myers的软件测试的定义 测试是为了发现程序中的错误而执行程序 的过程; 好的测试方案是极可能发现迄今为止尚未 发现的错误的测试方案; 成功的测试是发现了迄今为止尚未发现的 错误的测试
一、Myers的软件测试的定义 • 测试是为了发现程序中的错误而执行程序 的过程; • 好的测试方案是极可能发现迄今为止尚未 发现的错误的测试方案; • 成功的测试是发现了迄今为止尚未发现的 错误的测试
测试的意义和几点说明 软件质量保证的最重要手段 是否达到需求说明的功能和预期的指标 测试耗时费力,应用最小的测试代价获得最大 的测试效果 测试是为了发现错误,不是为了证明程序无错 测试不能证明程序中没有错误 测试的可信度( dependability)问题
测试的意义和几点说明 • 软件质量保证的最重要手段 – 是否达到需求说明的功能和预期的指标 • 测试耗时费力,应用最小的测试代价获得最大 的测试效果。 • 测试是为了发现错误,不是为了证明程序无错 误。 • 测试不能证明程序中没有错误。 • 测试的可信度(dependability)问题
Testing is the unavoidable part of any responsible effort to develop a software system William Howden Optimism is the occupational hazard of programming; testing is the treatment Kent beck
“ Testing is the unavoidable part of any responsible effort to develop a software system.” — William Howden “ Optimism is the occupational hazard of programming; testing is the treatment.” — Kent Beck
The first mistake that people make is thinking that the testing team is responsible for assuring quality. Brian marick <Errors are more common. more pervasive, and more troublesome in software than other technologies, David parnas
“Errors are more common, more pervasive, and more troublesome in software than other technologies.” — David Parnas “ The first mistake that people make is thinking that the testing team is responsible for assuring quality.” — Brian Marick
Every program does something right it just may not be the thing we want it to do we unknown
“Every program does something right; it just may not be the thing we want it to do.” — we unknown
二、软件测试准则 所有的测试都应追溯到用户需求,从用户角度看 最严重的错误是不能满足需求 制定测试计划,并严格执行,排除随意性。测试 计划在需求分析阶段就开始了,详细的测试用例 在设计阶段确定。 Pareto原则:所发现错误的80%很可能源于程序模 块的20%中 测试应当从‘小规模’开始,逐步转向‘大规 模 穷举测试是不可能的( Exhaustive testing) 由独立的第三方或专门的测试小组进行独立测试
二、软件测试准则 • 所有的测试都应追溯到用户需求,从用户角度看, 最严重的错误是不能满足需求。 • 制定测试计划,并严格执行,排除随意性。测试 计划在需求分析阶段就开始了,详细的测试用例 在设计阶段确定。 • Pareto原则:所发现错误的80%很可能源于程序模 块的20%中。 • 测试应当从‘小规模’开始,逐步转向‘大规 模’。 • 穷举测试是不可能的(Exhaustive testing)。 • 由独立的第三方或专门的测试小组进行独立测试
Cont 测试用例由输入数据和相应的预期输出组成 测试用例不仅选用合理的输入数据,还要选择不 合理的 不仅检查程序是否做了应该做的事,还应该检查 是否不应该做的。 长期保留测试用例,以便进行回归测试和维护
Cont. • 测试用例由输入数据和相应的预期输出组成。 • 测试用例不仅选用合理的输入数据,还要选择不 合理的。 • 不仅检查程序是否做了应该做的事,还应该检查 是否不应该做的。 • 长期保留测试用例,以便进行回归测试和维护
测试技术的分类 静态测试 代码会审 code inspection 走查 walk-through 办公桌检查 desk checking 例如: Yourdon结构化走通、IBM的 Fagan检查 动态测试 黑盒测试 白盒测试 穷举和选择测试
三、测试技术的分类 • 静态测试 – 代码会审 code inspection – 走查 walk-through – 办公桌检查 desk checking – 例如:Yourdon结构化走通、IBM的Fagan检查 • 动态测试 – 黑盒测试 – 白盒测试 – 穷举和选择测试