- 语句覆盖:要求每一条语句都被执行。
- 条件覆盖:要求判定表达式的每个条件的值的真假分支都被执行。
- 判定覆盖(分支覆盖):要求判定表达式的值的真假分支都被执行。
条件覆盖跟判定覆盖的区别:
举个例子:
判定表达式:a > 3 and b > 0
用判定覆盖设计的测试用例:
- a = 5, b = 1 (判定表达式的值为“真”)
- a = 0, b = 1 (判定表达式的值为“假”)
注意:这里并不需要管b的取值,就已经满足判定覆盖的条件了。
用条件覆盖设计的测试用例:
- a = 5, b = 1 (条件a > 3为真, 条件b > 0为真)
- a = 5, b = -1 (条件a > 3为真, 条件b > 0为假)
- a = -5, b = 1 (条件a > 3为假, 条件b > 0为真)
- a = -5, b = -1(条件a > 3为假, 条件b > 0为假)
- 判定-条件覆盖:判定覆盖各条件覆盖交叉,针对于判定中的条件取值
- 组合覆盖(条件组合覆盖):判定-条件覆盖的加强版,每个判定中的各个条件的各种可能组合都至少出现一次。显然,满足条件组合覆盖的测试用例一定是满足判定覆盖、条件覆盖和判定条件覆盖的。
6.路径覆盖:可以覆盖程序中所有可能的执行路径,相当于每一条执行流都要走一遍
到这里也许你会对路径覆盖跟语句覆盖的测试用例产生疑惑,下面给出一个例子进行辨析