1、第 3章 白盒测试e6e1e2e3e4e5 e73.1控制流测试n 一、基本概念n 有向图n 路径n 完整路径n 简单路径n 基本路径n 子路径n 回路n 无回路路径n 连接n 覆盖路径覆盖关系举例 n 二、控制流覆盖准则n 语句覆盖准则n 分支覆盖准则n 谓词测试n 原子谓词覆盖准则n 分支谓词覆盖准则n 复合谓词覆盖准则n 路径覆盖准则部分覆盖准则间的关系 复合谓词覆盖准则分支 -谓词覆盖准则分支覆盖准则 原子谓词覆盖准则语句覆盖准则3.数据流测试n 一、基本概念n 变量的定义性出现:若一个变量在程序中的某处出现使数据与该变量相绑定,则称该出现是定义性出现。n 变量的引用性出现:若一个变量
2、在程序中的某处出现使与该变量相绑定的数据被引用,则称该出现是引用性出现。n 二、数据流覆盖准则n 定义覆盖测试准则n 引用覆盖测试准则n 定义引用覆盖测试准则3.程序插装n 程序插装技术的研究涉及下列几个问题:n (1)探测哪些信息?n (2)程序的什么位置设置探测点?n (3)需要多少探测点?n 程序插装类型:n 用于测试覆盖率和测试用例有效性度量的程序插装 n 用于断言检测的程序插装 3.程序变异测试程序变异测试技术的基本思想是:对于给定的程序 P,先假定程序中存在一些小错误,每假设一个错误,程序 P就变成 P,如果假设了 n个错误: e1, e2, , en,则对应有n个不同的程序: P
3、1, P2, , Pn,这里 Pi称为 P的变异因子。存在测试数据 Ci,使得 P和 Pi的输出结果是不同的。因此,根据程序P和每个变异的程序,可以求得 P1, P2, Pn的测试数据集 C=C1,C2, , Cn。运行 C,如果对每一个 Ci, P都是正确的,而 Pi都是错误的,这说明 P的正确性较高。如果对某个 Ci, P是错误的,而 Pi是正确的,这说明 P存在错误,而错误就是 ei。n 程序强变异测试变异测试的缺点是它需要大量的计算机资源来完成测试充分性分析。对于一个中等规模的软件,所需的存储空间也是巨大的,运行大量变异因子也导致了时间上巨大的开销。 n 程序弱变异测试弱变异和强变异有很多相似之处。其主要差别在于:弱变异强调的是变动程序的组成部分,根据弱变异准则,只要事先确定导致 C与C产生不同值的测试数据组,则可将程序在此测试数据组上运行,而并不实际产生其变异因子。弱变异测试方法的主要优点是开销较小,效率较高。 3.白盒测试工具n 一、静态工具n 静态测试工具类型:1.代码审查 2.一致性检查3.错误检查 4.接口分析5.输入 /输出规格说明分析检查 6.数据流分析 7.类型分析 8.单元分析 9.复杂度分析