第四章测试工程 121 O 8 765
第四章 测试工程
软件测试背景 ■软件是人编的一所以不完美 12 ■实例: 1994-1995,迪斯尼的狮子王系统不支持问题 9 3 Intel的 pentium处理器 765 1994年浮点除法缺陷 20年8月28日,1.13MHZ处理器一个可能 导致运行程序被挂起的执行指令问题 1999年12月3日,美国航天局火星极地登陆飞 船失踪 1991年爱国者导弹防御系统系统时钟错误积 累造成跟踪系统失去精确度 千年虫,世界各地解决2000年错误超过数亿美
软件测试背景 ◼ 软件是人编的—所以不完美 ◼ 实例: 1994-1995,迪斯尼的狮子王系统不支持问题 Intel的pentium处理器 1994年浮点除法缺陷 2000年8月28日, 1.13MHZ处理器一个可能 导致运行程序被挂起的执行指令问题 1999年12月3日,美国航天局火星极地登陆飞 船失踪 1991年爱国者导弹防御系统系统时钟错误积 累造成跟踪系统失去精确度 千年虫,世界各地解决2000年错误超过数亿美 元
软件测试背景 12 ■软件产品最大的成本是检测软件 9 3 错误,修正软件错误的成本 765 在整个软件开发中测试工作量 般占30%~40%,甚至>50%。在 人命关天的软件(如飞机控制,核 反应堆等测试所花费的时间往往 是其它软件工程活动时间之和的 三到五倍
软件测试背景 ◼ 软件产品最大的成本是检测软件 错误,修正软件错误的成本。 在整个软件开发中,测试工作量一 般占30%~40%,甚至≥50%。在 人命关天的软件(如飞机控制,核 反应堆等)测试所花费的时间往往 是其它软件工程活动时间之和的 三到五倍
软件测试的基本原则 12 (1)尽早地、不断地进行软件 9 3 测试。 765 (2)设计测试用例时,要给出测 试的预期结果。 (3)开发小组和测试小组分开。 (4)要设计非法输入的测试用例
软件测试的基本原则 (1)尽早地、不断地进行软件 测试。 (2)设计测试用例时,要给出测 试的预期结果。 (3)开发小组和测试小组分开。 (4)要设计非法输入的测试用例
软件测试的基本原则 12 (5)在对程序修改之后要进行回 9 3 归测试。 765 (6)程序中尚未发现的错误的数 量往往与在该段程序中已发现的 错误的数量成正比
软件测试的基本原则 (5)在对程序修改之后要进行回 归测试。 (6)程序中尚未发现的错误的数 量往往与在该段程序中已发现的 错误的数量成正比
测试观点 12 G.J. Myers《软件测试技巧》 9 3 测试是为了寻找错误而运行程序 的过程; 765 个好的测试用例在于能发现至 今未发现的错误; 个成功的测试是发现了至今未 发现的错误的测试
测试观点 ◼ G.J.Myers 《软件测试技巧》 ⚫ 测试是为了寻找错误而运行程序 的过程; ⚫ 一个好的测试用例在于能发现至 今未发现的错误; ⚫ 一个成功的测试是发现了至今未 发现的错误的测试
测试观点 a E.W. Dijkstra 12 ●测试能证明错误的存在,但不能证明错 9 3 误不存在。 765 测试的目的是发现程序中的错误,是 为了证明程序有错,而不是证明程序 无错。 把证明程序无错当作测试目的不仅是 不正确的,完全做不到的,而且对做 好测试没有任何益处,甚至是十分有 害的。 能够发现错误的测试是成功的测试, 否则是失败的测试
测试观点 ◼ E.W.Dijkstra ⚫ 测试能证明错误的存在,但不能证明错 误不存在。 ◼ 测试的目的是发现程序中的错误,是 为了证明程序有错,而不是证明程序 无错。 把证明程序无错当作测试目的不仅是 不正确的, 完全做不到的,而且对做 好测试没有任何益处,甚至是十分有 害的。 ◼ 能够发现错误的测试是成功的测试, 否则是失败的测试
测试观点 12 ■软件测试不等于程序测试 9 3 软件测试应贯穿于软件定义与开 765 发的整个期间; 据美国一家公司统计,查出的软 件错误中,属于需求分析和软件 设计的错误约占64%,属于程序 编写的错误仅占36%。程序编写 的许多错误是“先天的
测试观点 ◼ 软件测试不等于程序测试 软件测试应贯穿于软件定义与开 发的整个期间; 据美国一家公司统计,查出的软 件错误中,属于需求分析和软件 设计的错误约占 64%,属于程序 编写的错误仅占 36%。程序编写 的许多错误是“先天的”
4.1测试工程概要 12 ■通过测试工程对软件的测试,验 9 3 证软件的有效性,发现并修补软 765 件系统的缺陷,以提髙软件质量, 确保开发出用户满意的软件
4.1 测试工程概要 ◼ 通过测试工程对软件的测试,验 证软件的有效性,发现并修补软 件系统的缺陷,以提高软件质量, 确保开发出用户满意的软件
4.1测试工程概要 12 测试是一个反复的过程 765 ■面向功能的系统和面向对象的系 统的测试方法是不一样的
4.1 测试工程概要 ◼ 测试是一个反复的过程 ◼ 面向功能的系统和面向对象的系 统的测试方法是不一样的