针对上图的一个判断条件,在这里将分别讨论判定覆盖、判定条件覆盖、条件组合覆盖的情况:
设T1=A>3,T2=B>3;为该判定节点的两个子条件。
(一)判定覆盖:
所谓的判定覆盖就是让判定的真分支和假分支各执行一次,只要列出的子条件能够满足真假分支各一次就可以了:
例如: A=4,B=3(T1=True,T2=False)走了真分支,A=3,B=3(T1=False,T2=False)走了假分支。
当然,能走真假分支都走的条件组合还有很多种,这里随便选一种就可以了。
(二)判定条件覆盖(条件覆盖):
所谓判定条件覆盖就是给出的条件组合里面每个子条件的真、假都出现过,也就是T1(True,False),T2(True,False)都出现过。现在如果我们拿过问题(一)的条件组合,那么得到的就是:
A=4,B=3(T1=True,T2=False)
A=3,B=3(T1=False,T2=False)
发现T1(True,False)都有了,T2(__,False)只有False,没有出现True,所以随便补充一个T2=True的条件组合就可以了:
A=3,B=4(T1=False,T2=True)
这样就满足判定条件覆盖了,当然,如果不在问题(一)的基础上扩展的话,可以用判定条件覆盖的最暴力的方式给出答案:
A=4,B=4(T1=True,T2=True)
A=3,B=3(T1=False,T2=False)
这样就满足了判定条件覆盖。
(三)条件组合覆盖:
所谓的条件组合覆盖,就是一个判定的所有子条件的组合情况都出现一次。一般使用列表法,把子条件的所有组合情况都列出来,然后填表:
T1 | T2 | 红色是从问题 | A | B |
TRUE | TRUE | (二)继承的 |
5 |
5 |
FALSE | FALSE | —— |
3 |
3 |
TRUE | FALSE | 绿色是补充的 |
4 |
3 |
FALSE | TRUE | ——– |
3 |
4 |
在表格中的A B组合就满足了条件组合覆盖,可见条件组合覆盖是包含着判定条件覆盖的,而判定条件覆盖不一定包含判定覆盖。
注:本例中给出的测试用例严格来讲都是错误的,因为一个完整的测试用例,还要给出结果,这里只是为了说明问题,程序是截块的,所以就只给了输入,没有给输出。