Chapter 16 SOFTWARE TESTING TECHNIQUES 软件系统的开发包括一系列生产活动 软件测试是软件质量保证的关键元素。代表 了规约、设计和编码的最终检查。软件开发 组织把30%-40%的时间和精力花在测试上是 不足为怪的。 161软件测试基础 从心理角度说,测试是摧毁性的,而不是建 设性的。测试要求开发者放弃刚开发的软件 是正确的观念,并克服发现错误时的心理矛 盾
Chapter 16 SOFTWARE TESTING TECHNIQUES 软件系统的开发包括一系列生产活动。 软件测试是软件质量保证的关键元素。代表 了规约、设计和编码的最终检查。软件开发 组织把30%--40%的时间和精力花在测试上是 不足为怪的。 16.1 软件测试基础 从心理角度说,测试是摧毁性的,而不是建 设性的。测试要求开发者放弃刚开发的软件 是正确的观念,并克服发现错误时的心理矛 盾
Chapter 16 SOFTWARE TESTING TECHNIQUES 161.1测试目标 测试目标规则: (1)测试是一个为了寻找错误而运行程 序的过程。 (2)一个好的测试用例是指很可能找到 迄今为止尚未发现的错误的用例 (3)一个成功的测试是指揭示了迄今为 止尚未发现的错误的测试
Chapter 16 SOFTWARE TESTING TECHNIQUES 16.1.1 测试目标 测试目标规则: (1)测试是一个为了寻找错误而运行程 序的过程。 (2)一个好的测试用例是指很可能找到 迄今为止尚未发现的错误的用例。 (3)一个成功的测试是指揭示了迄今为 止尚未发现的错误的测试
Chapter 16 SOFTWARE TESTING TECHNIQUES 16.1.2测试原则 在设计有效的测试用例之前,软件工程师必 须理解软件测试的基本原则。 (1)所有的测试都应追溯到用户需求。 (2)应该在测试工作真正开始前的较长时间内 就进行测试计划。 (3) Pareto原则应用于软件测试。 Pareto原则: 测试发现的错误中的80%很可能起源于程序模 块中的20% (4)测试应从“小规模”开始,逐步转向“大 规模
Chapter 16 SOFTWARE TESTING TECHNIQUES 16.1.2 测试原则 在设计有效的测试用例之前,软件工程师必 须理解软件测试的基本原则。 (1)所有的测试都应追溯到用户需求。 (2)应该在测试工作真正开始前的较长时间内 就进行测试计划。 (3)Pareto原则应用于软件测试。Pareto原则: 测试发现的错误中的80%很可能起源于程序模 块中的20%。 (4)测试应从“小规模”开始,逐步转向“大 规模
Chapter 16 SOFTWARE TESTING TECHNIQUES (5)为了达到最佳效果,应该由独立的 第三方来构造测试。 1613可测试性 软件的可测试性就是一个计算机程 序能够被测试的容易程度
Chapter 16 SOFTWARE TESTING TECHNIQUES (5) 为了达到最佳效果,应该由独立的 第三方来构造测试。 16.1.3 可测试性 软件的可测试性就是一个计算机程 序能够被测试的容易程度
Chapter 16 SOFTWARE TESTING TECHNIQUES 162测试用例设计 产品在出厂前都是要经过严格测试的 下面我们考虑两种对任何产品都适用的一般 测试方法: (1)若了解产品的功能,则构造测试,以证实 各功能完全可执行,同时在各功能中寻找错 误;这种方法被称为黑盒测试 (2)若了解产品的内部构造,则构造测试,以 确保“所有齿轮吻合”,即内部操作依据规 约执行,而且所有的内部构件被充分利用 这种方法被称为白盒测试
Chapter 16 SOFTWARE TESTING TECHNIQUES 16.2 测试用例 设计 产品在出厂前都是要经过严格测试的。 下面我们考虑两种对任何产品都适用的一般 测试方法: (1)若了解产品的功能,则构造测试,以证实 各功能完全可执行,同时在各功能中寻找错 误;这种方法被称为黑盒测试。 (2)若了解产品的内部构造,则构造测试,以 确保“所有齿轮吻合”,即内部操作依据规 约执行,而且所有的内部构件被充分利用。 这种方法被称为白盒测试
Chapter 16 SOFTWARE TESTING TECHNIQUES 在计算机软件界,黑盒测试指在软件界面 上的测试,虽然设计黑盒测试是为了发 现错误,但他们却被用来证实软件功能 的可操作性,证实能很好地接受输入, 并正确地产生输出;以及证实对外部信 息完整性的保持。他测试系统的一些基 本特征,很少涉及软件的内部逻辑结构
Chapter 16 SOFTWARE TESTING TECHNIQUES 在计算机软件界,黑盒测试指在软件界面 上的测试,虽然设计黑盒测试是为了发 现错误,但他们却被用来证实软件功能 的可操作性,证实能很好地接受输入, 并正确地产生输出;以及证实对外部信 息完整性的保持。他测试系统的一些基 本特征,很少涉及软件的内部逻辑结构
Chapter 16 SOFTWARE TESTING TECHNIQUES 软件的白盒测试依赖于对程序细节的严密 测试,使用特定的条件和循环集的测试用例, 对软件的逻辑路径进行测试,在不同的点检 验“程序的状态”以判定预期状态或待验证 状态与真实状态是否相符 但是,一个很小的程序的逻辑程序路径也 可能异常庞大,不可能进行完全的穷举测试 但白盒测试仍然是非常有用的。我们可以在 重要的逻辑路径上进行穷举测试
Chapter 16 SOFTWARE TESTING TECHNIQUES 软件的白盒测试依赖于对程序细节的严密 测试,使用特定的条件和循环集的测试用例, 对软件的逻辑路径进行测试,在不同的点检 验“程序的状态”以判定预期状态或待验证 状态与真实状态是否相符。 但是,一个很小的程序的逻辑程序路径也 可能异常庞大,不可能进行完全的穷举测试。 但白盒测试仍然是非常有用的。我们可以在 重要的逻辑路径上进行穷举测试
Chapter 16 SOFTWARE TESTING TECHNIQUES =163自盒测试 白盒测试是一种测试用例设计方法,使用 程序的控制结构导出测试用例 测试用例:(1)保证一个模块中的所有独立 路径至少被使用一次;(2)对所有逻辑值均 需测试TRUE和 FALSE;(3)在上下界及可 操作范围内运行所有循环;(4)检査内部数 据结构以确保其有效性
Chapter 16 SOFTWARE TESTING TECHNIQUES 16.3 白盒测试 白盒测试是一种测试用例设计方法,使用 程序的控制结构导出测试用例。 测试用例: (1)保证一个模块中的所有独立 路径至少被使用一次;(2)对所有逻辑值均 需测试TRUE和FALSE;(3)在上下界及可 操作范围内运行所有循环;(4)检查内部数 据结构以确保其有效性
Chapter 16 SOFTWARE TESTING TECHNIQUES 164基本路径测试 对程序中的每一条语句至少执行一次 164.1流图符号 流图也称为程序图,每一种结构化 构成元素有一个相应的流图符号
Chapter 16 SOFTWARE TESTING TECHNIQUES 16.4 基本路径测试 对程序中的每一条语句至少执行一次。 16.4.1 流图符号 流图也称为程序图,每一种结构化 构成元素有一个相应的流图符号
Chapter 16 SOFTWARE TESTING TECHNIQUES 顺序语句 If语句 While语句 其中每个圆代表一个或多个无分支PDL或原代码语 流图符号
Chapter 16 SOFTWARE TESTING TECHNIQUES 顺序语句 If 语句 While 语句 其中每个圆代表一个或多个无分支PDL或原代码语 句 流图符号