天天看点

软件设计师--判定覆盖,判定条件覆盖,条件组合覆盖--一个栗子

软件设计师--判定覆盖,判定条件覆盖,条件组合覆盖--一个栗子

针对上图的一个判断条件,在这里将分别讨论判定覆盖、判定条件覆盖、条件组合覆盖的情况:

设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组合就满足了条件组合覆盖,可见条件组合覆盖是包含着判定条件覆盖的,而判定条件覆盖不一定包含判定覆盖。

    注:本例中给出的测试用例严格来讲都是错误的,因为一个完整的测试用例,还要给出结果,这里只是为了说明问题,程序是截块的,所以就只给了输入,没有给输出。

继续阅读