白盒测试----六种覆盖方法

白盒测试----六种覆盖方法 定义白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法白盒指的是程序的内部结构和运作机制是可见的。白盒测试的目的通过检查软件内部的逻辑结构对软件中的逻辑路径进行覆盖测试在程序不同地方设置检查点检查程序的状态以确定实际运行状态与预期状态是否一致。白盒测试的方法大致分为静态方法和动态方法两大类。A. 静态分析是一种不执行程序而进行测试的技术。静态分析的主要目的是检查软件的表示和描述是否一致,没有冲突或者没有歧义。B. 动态分析当软件系统在模拟或真实的环境中执行前、过程中和执行后,对其行为分析。它显示了一个系统在检查状态下是否正确。在动态分析技术中,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态分析方法。符号说明^ 代表逻辑运算符 或者 ||T 代表 True F 代表 FalseA / B 代表条件表达式1语句覆盖使程序中的每个可执行语句都能执行一次的测试用例测试用例条件 A ^ B T2判定覆盖分支覆盖对于判断语句在设计用例的时候要设计判断语句结果为True和False的两种情况测试用例条件A ^ B TA ^ B F3条件覆盖设计用例时针对判断语句里面每个条件表达式true 和 false各取值一次不考判断语句的计算结果测试用例条件AT AFBT BF4判定条件覆盖分支条件覆盖设计测试用例时使得判断语句中每个条件表达式的所有可能结果至少出现一次每个判断语句本身所有可能结果也至少出现一次。测试用例条件A ^ B T A ^ B FAT AFBT BF5条件组合覆盖设计测试用例时使得每个判断语句中条件结果的所有可能组合至少出现一次测试用例条件A T B TA T B FA F B TA F B F6路径覆盖设计测试用例时覆盖程序中所有可能的执行路径优点这种覆盖方法可以对程序进行彻底的测试用例覆盖比前面讲的五种方法覆盖度都要高。缺点于路径覆盖需要对所有可能的路径进行测试包括循环、条件组合、分支选择等那么需要设计大量、复杂的测试用例使得工作量呈指数级增长。路径覆盖虽然是一种比较强的覆盖但未必考虑判断语句中条件表达式结果的组合并不能代替条件覆盖和条件组合覆盖。