软件测试基础教程 杜文洁景秀丽主编 中国水利水电出版社
软件测试基础教程 杜文洁 景秀丽 主编 中国水利水电出版社
第三章软件测试流程 3.1软件测试的复杂性与经济性分析 32软件测试的流程 33单元测试 34集成测试 35确认测试 36系统测试 37验收测试 习题 第三章软件测试流程
第三章 软件测试流程 第三章 软件测试流程 3.1 软件测试的复杂性与经济性分析 3.2 软件测试的流程 3.3 单元测试 3.4 集成测试 3.5 确认测试 3.6 系统测试 3.7 验收测试 习题
本章概要 软件测试的复杂性和经济性 ≯软件测试的相关流程:单元测试、集成测试、确认测试、系统测 试和验收测试等基本测试阶段。 第三章软件测试流程
本章概要 第三章 软件测试流程 ➢软件测试的复杂性和经济性 ➢软件测试的相关流程:单元测试、集成测试、确认测试、系统测 试和验收测试等基本测试阶段
31软件测试的复条性与经济性分析 人们在对软件工程开发的常规认识中,认为开发程序是一个 复杂而困难的过程,需要花费大量的人力、物力和时间,而测试 个程序则比较容易,不需要花费太多的精力。这其实是人们对 软件工程开发过程理解上的一个误区。在实际的软件开发过程中, 作为现代软件开发工业一个非常重要的组成部分,软件测试正扮 演着越来越重要的角色。随着软件规模的不断扩大,如何在有限 的条件下对被开发软件进行有效的测试正成为软件工程中一个非 常关键的课题。 第三章软件测试流程
3.1 软件测试的复杂性与经济性分析 第三章 软件测试流程 人们在对软件工程开发的常规认识中,认为开发程序是一个 复杂而困难的过程,需要花费大量的人力、物力和时间,而测试 一个程序则比较容易,不需要花费太多的精力。这其实是人们对 软件工程开发过程理解上的一个误区。在实际的软件开发过程中, 作为现代软件开发工业一个非常重要的组成部分,软件测试正扮 演着越来越重要的角色。随着软件规模的不断扩大,如何在有限 的条件下对被开发软件进行有效的测试正成为软件工程中一个非 常关键的课题
311软件测试的复杂性 设计测试用例是一项细致并且需要具备高度技巧的工作,稍有不 慎就会顾此失彼,发生不应有的疏漏。下面分析了容易出现问题的 根源。 (1)完全测试是不现实的 在实际的软件测试工作中,不论采用什么方法,由于软件测试情 况数量极其巨大,都不可能进行完全彻底的测试。所谓彻底测试, 就是让被测程序在一切可能的输入情况下全部执行一遍。通常也称 这种测试为“穷举测试” 穷举测试会引起以下几种问题: ·输入量太大; ·输出结果太多; ·软件执行路径太多; 说明书存在主观性。 第三章软件测试流程
3.1.1 软件测试的复杂性 第三章 软件测试流程 设计测试用例是一项细致并且需要具备高度技巧的工作,稍有不 慎就会顾此失彼,发生不应有的疏漏。下面分析了容易出现问题的 根源。 (1) 完全测试是不现实的 在实际的软件测试工作中,不论采用什么方法,由于软件测试情 况数量极其巨大,都不可能进行完全彻底的测试。所谓彻底测试, 就是让被测程序在一切可能的输入情况下全部执行一遍。通常也称 这种测试为“穷举测试”。 穷举测试会引起以下几种问题: •输入量太大; •输出结果太多; •软件执行路径太多; •说明书存在主观性
311软件测试的复杂性 EWDijkstra的一向名言对测试的不彻底性作了很好的注解:“程 序测试只能证明错误的存在,但不能证明错误的不存在”。由于穷 举测试工作量太大,实践上行不通,这就注定了一切实际测试都是 不彻底的,也就不能够保证被测试程序在理论上不存在遗留的错误。 第三章软件测试流程
3.1.1 软件测试的复杂性 第三章 软件测试流程 E.W.Dijkstra的一句名言对测试的不彻底性作了很好的注解:“程 序测试只能证明错误的存在,但不能证明错误的不存在”。由于穷 举测试工作量太大,实践上行不通,这就注定了一切实际测试都是 不彻底的,也就不能够保证被测试程序在理论上不存在遗留的错误
311软件测试的复杂性 2)软件测试是有风险的 穷举测试的不可行性使得大多数软件在进行测试的时候只能采取非 穷举测试,这又意味着一种冒险。比如在使用 Microsoft office工具 中的Word时,可以作这样的一个测试:①新建一个Word文档;②在 文档中输入汉字“胡”;③设置其字体属性为“隶书”,字号为初 弓,效果为“空心”;④将页面的显示比例设为“500%。这时 在“胡字的内部会出现“胡万进印”四个字。类似问题在实际测 试中如果不使用穷举测试是很难发现的,而如果在软件投入市场时 才发现则修复代价就会非常高。这就会产生一个矛盾:软件测试员 不能做到完全的测试,不完全测试又不能证明软件的百分之百的可 靠。那么如何在这两者的矛盾中找到一个相对的平衡点呢? 第三章软件测试流程
3.1.1 软件测试的复杂性 第三章 软件测试流程 (2) 软件测试是有风险的 穷举测试的不可行性使得大多数软件在进行测试的时候只能采取非 穷举测试,这又意味着一种冒险。比如在使用Microsoft Office工具 中的Word时,可以作这样的一个测试:①新建一个Word文档;②在 文档中输入汉字 “胡”;③设置其字体属性为“隶书”,字号为初 号,效果为“ 空心”;④将页面的显示比例设为“500%”。这时 在“胡”字的内部会出现“胡万进印”四个字。类似问题在实际测 试中如果不使用穷举测试是很难发现的,而如果在软件投入市场时 才发现则修复代价就会非常高。这就会产生一个矛盾:软件测试员 不能做到完全的测试,不完全测试又不能证明软件的百分之百的可 靠。那么如何在这两者的矛盾中找到一个相对的平衡点呢?
311软件测试的复杂性 如图3-1所示的最优测试量示意图可以观察到,当软件缺陷降低到某一数值 后,随着测试从量的不断上升软件缺陷并没有明显地下降。这是软件测试 工作中需要注意的重要问题。如何把测试数据量巨大的软件测试减少到可 以控制的范围,如何针对风险做岀最明智的选择是软件测试人员必须能够 把握的关键问题 图3-1的最优测试量示意图说明了发现软件缺陷数量和测试量之间的关系, 随着测试量的增加,测试成本将呈几何数级上升,而软件缺陷降低到某 数值之后将没有明显的变化,最优测量值就是这两条曲线的交点。 第三章软件测试流程
3.1.1 软件测试的复杂性 第三章 软件测试流程 如图3-1所示的最优测试量示意图可以观察到,当软件缺陷降低到某一数值 后,随着测试从量的不断上升软件缺陷并没有明显地下降。这是软件测试 工作中需要注意的重要问题。如何把测试数据量巨大的软件测试减少到可 以控制的范围,如何针对风险做出最明智的选择是软件测试人员必须能够 把握的关键问题。 图3-1的最优测试量示意图说明了发现软件缺陷数量和测试量之间的关系, 随着测试量的增加,测试成本将呈几何数级上升,而软件缺陷降低到某一 数值之后将没有明显的变化,最优测量值就是这两条曲线的交点
311软件测试的复杂性 软件缺陷数量 软件缺陷 最忧测试量 测试成本 测试量 图31最优测试量示意图 第三章软件测试流程
3.1.1 软件测试的复杂性 第三章 软件测试流程 图3-1 最优测试量示意图
311软件测试的复杂性 (3)杀虫剂现象 1990年, Boris beizer在其编著的《 Software Testing Techniques》 (第二版)中提到了“杀虫剂怪事”一词,同一种测试工具或方法 用于测试同一类软件越多,则被测试软件对测试的免疫力就越强 这与农药杀虫是一样的,老用一种农药,则害虫就有了免疫力,农 药就失去了作用 由于软件开发人员在开发过程中可能碰见各种各样的主客观因素, 再加上不可预见的突发性事件,所以再优秀的软件测试员采用一种 测试方法或者工具也不可能检测出所有的缺陷。为了克服被测试软 件的免疫力,软件测试员必须不断编写新的测试程序,对程序的各 个部分进行不断地测试,以避免被测试软件对单一的测试程序具有 免疫力而使软件缺陷不被发现。这就对软件测试人员的素质提岀了 很高的要求 第三章软件测试流程
3.1.1 软件测试的复杂性 第三章 软件测试流程 (3) 杀虫剂现象 1990年,Boris Beizer在其编著的《Software Testing Techniques》 (第二版)中提到了“杀虫剂怪事”一词,同一种测试工具或方法 用于测试同一类软件越多,则被测试软件对测试的免疫力就越强。 这与农药杀虫是一样的,老用一种农药,则害虫就有了免疫力,农 药就失去了作用。 由于软件开发人员在开发过程中可能碰见各种各样的主客观因素, 再加上不可预见的突发性事件,所以再优秀的软件测试员采用一种 测试方法或者工具也不可能检测出所有的缺陷。为了克服被测试软 件的免疫力,软件测试员必须不断编写新的测试程序,对程序的各 个部分进行不断地测试,以避免被测试软件对单一的测试程序具有 免疫力而使软件缺陷不被发现。这就对软件测试人员的素质提出了 很高的要求