
软件工程 第11章软件测试 D
软件工程 第11章 软件测试

内容摘要 软件测试基础 。 白盒测试 黑盒测试 测试策略 面向对象测试 测试完成标准 调试 厦门理工学院计算机科学与技术系软件工程课程 2/161
厦门理工学院计算机科学与技术系 软件工程课程 2/161 内容摘要 • 软件测试基础 • 白盒测试 • 黑盒测试 • 测试策略 • 面向对象测试 • 测试完成标准 • 调试

内容摘要 软件测试基础 白盒测试 黑盒测试 测试策略 面向对象测试 测试完成标准 调试 厦门理工学院计算机科学与技术系软件工程课程 3/161
厦门理工学院计算机科学与技术系 软件工程课程 3/161 内容摘要 • 软件测试基础 • 白盒测试 • 黑盒测试 • 测试策略 • 面向对象测试 • 测试完成标准 • 调试

软件测试基础 ·软件测试的目的 ·软件测试的基本原则 ·白盒测试和黑盒测试 厦门理工学院计算机科学与技术系软件工程课程 4/161
厦门理工学院计算机科学与技术系 软件工程课程 4/161 软件测试基础 • 软件测试的目的 • 软件测试的基本原则 • 白盒测试和黑盒测试

有关软件测试的错误观点 “软件测试是为了证明程序是正确的,即测 试能发现程序中所有的错误”。事实上这 是不可能的。要通过测试发现程序中的所 有错误,就要穷举所有可能的输入数据。 对于一个输入三个16位字长的整型数据的程序, 输入数据的所有组合情况有248≈3*1014,如果测试 一个数据需1ms,则即使一年365天一天24小时不停 地测试,也需要约1万年。 厦门理工学院计算机科学与技术系软件工程课程 5/161
厦门理工学院计算机科学与技术系 软件工程课程 5/161 有关软件测试的错误观点 “软件测试是为了证明程序是正确的,即测 试能发现程序中所有的错误”。事实上这 是不可能的。要通过测试发现程序中的所 有错误,就要穷举所有可能的输入数据。 对于一个输入三个16位字长的整型数据的程序, 输入数据的所有组合情况有2 48 3*1014 ,如果测试 一个数据需1ms,则即使一年365天一天24小时不停 地测试,也需要约1万年

对一个具有多重选择和循环嵌套的程序 不同的路径数目可能是天文数字。例如一个它 小程序的流程图,它包括了一个执行20次的 循环,其循环体有五个分支。这个循环的不 同执行路径数达520条,如果对每一条路径进 行测试需要1毫秒,那么即使一年工作365× 24小时,要想把所有路径测试完,大约需 3170年。 厦门理工学院计算机科学与技术系软件工程课程 6/161
厦门理工学院计算机科学与技术系 软件工程课程 6/161 对一个具有多重选择和循环嵌套的程序, 不同的路径数目可能是天文数字。例如一个 小程序的流程图,它包括了一个执行20次的 循环,其循环体有五个分支。这个循环的不 同执行路径数达520条,如果对每一条路径进 行测试需要1毫秒,那么即使一年工作365 × 24小时,要想把所有路径测试完,大约需 3170年

A 循环≤20次 厦门理工学院计算机科学与技术系软件工程课程 7/161
厦门理工学院计算机科学与技术系 软件工程课程 7/161

·“程序测试是证明程序正确地执行状 预期的功能”。 实际上,一个程 不仅要完成它所需完成的功能,而 且不应完成它不该做的事。如不能 把边长为0、0、O的三条边判断为 等边三角形。 厦门理工学院计算机科学与技术系软件工程课程 8/161
厦门理工学院计算机科学与技术系 软件工程课程 8/161 • “程序测试是证明程序正确地执行了 预期的功能”。实际上,一个程序 不仅要完成它所需完成的功能,而 且不应完成它不该做的事。如不能 把边长为0、0、0的三条边判断为 等边三角形

软件测试的目的 ·Glen Myers给出的软件测试目的: >测试是一个为了发现错误而执行程序的过程 >一个好的测试用例是指很可能找到迄今为至尚未 发现的错误的测试用例 >一个成功的测试是指揭示了迄今为至尚未发现的 错误的测试 根据这个测试目的,我们应该排除对测试的错 误观点,设计合适的测试用例,用尽可能少 的测试用例,来发现尽可能多的软件错误。 厦门理工学院计算机科学与技术系软件工程课程 9/161
厦门理工学院计算机科学与技术系 软件工程课程 9/161 软件测试的目的 • Glen Myers给出的软件测试目的: ➢测试是一个为了发现错误而执行程序的过程 ➢一个好的测试用例是指很可能找到迄今为至尚未 发现的错误的测试用例 ➢一个成功的测试是指揭示了迄今为至尚未发现的 错误的测试 根据这个测试目的,我们应该排除对测试的错 误观点,设计合适的测试用例,用尽可能少 的测试用例,来发现尽可能多的软件错误

软件测试的原侧 Davis提出了一组指导软件测试的基本原则 1.所有的测试都应可追溯到客户需求 2.应该在测试工作真正开始前的较长时间就进 行测试计划 3.Pareto原侧:测试中发现的80%的错误可能 来自于20%的程序代码 4.测试应从“小规模”开始,逐步转向“大规 模” 5誉测试是不可能的 ≤了达到最有效的测试,应由独立的第三方 来担测试 门理工学院计算机科学与技术系软件工程课程 10/161
厦门理工学院计算机科学与技术系 软件工程课程 10/161 软件测试的原则 Davis提出了一组指导软件测试的基本原则: 1.所有的测试都应可追溯到客户需求 2.应该在测试工作真正开始前的较长时间就进 行测试计划 3. Pareto原则:测试中发现的80%的错误可能 来自于20%的程序代码 4.测试应从“小规模”开始,逐步转向“大规 模” 5.穷举测试是不可能的 6.为了达到最有效的测试,应由独立的第三方 来承担测试