白盒测试之六种覆盖方法区分

  1. 语句覆盖:要求每一条语句都被执行。
  2. 条件覆盖:要求判定表达式的每个条件的值的真假分支都被执行。
  3. 判定覆盖(分支覆盖):要求判定表达式的值的真假分支都被执行。

条件覆盖跟判定覆盖的区别:
举个例子:
判定表达式:a > 3 and b > 0
用判定覆盖设计的测试用例:

  1. a = 5, b = 1 (判定表达式的值为“真”)
  2. a = 0, b = 1 (判定表达式的值为“假”)

注意:这里并不需要管b的取值,就已经满足判定覆盖的条件了。
用条件覆盖设计的测试用例:

  1. a = 5, b = 1 (条件a > 3为真, 条件b > 0为真)
  2. a = 5, b = -1 (条件a > 3为真, 条件b > 0为假)
  3. a = -5, b = 1 (条件a > 3为假, 条件b > 0为真)
  4. a = -5, b = -1(条件a > 3为假, 条件b > 0为假)
  1. 判定-条件覆盖:判定覆盖各条件覆盖交叉,针对于判定中的条件取值
    白盒测试之六种覆盖方法区分
  2. 组合覆盖(条件组合覆盖):判定-条件覆盖的加强版,每个判定中的各个条件的各种可能组合都至少出现一次。显然,满足条件组合覆盖的测试用例一定是满足判定覆盖、条件覆盖和判定条件覆盖的。
    白盒测试之六种覆盖方法区分
    6.路径覆盖:可以覆盖程序中所有可能的执行路径,相当于每一条执行流都要走一遍
    白盒测试之六种覆盖方法区分
    到这里也许你会对路径覆盖跟语句覆盖的测试用例产生疑惑,下面给出一个例子进行辨析
    白盒测试之六种覆盖方法区分