今天的软件测试培训课程,我们讲解一下判定-条件覆盖。
判定-条件覆盖(Condition/DecisionCoverage)要求设计足够多的测试用例,使得判定语句中所有条件的可能取值至少出现一次,同时,所有判定语句的可能结果也至少出现一次。例如,对于判定语句IF(a>1 AND c<1),该判定语句有a>1、c<1两个条件,则在设计测试用例时,要保证a>1、c<1两个条件取“真”“假”值至少一次,同时,判定语句if(a>1 AND c<1)取“真”“假”值也至少出现一次。这就是判定-条件覆盖,它弥补了判定覆盖和条件覆盖的不足之处。
根据判定-条件覆盖原则,以图3-1及其程序为例设计判定-条件覆盖测试用例,如表3-4所示。
表3-4判定-条件覆盖测试用例
在表3-4中,条件1是指判定语句“IF x>0 AND y<0”,条件2是指判定语句“IF x>2 ORz>0”,条件判定的值0表示“假”,1表示“真”。表3-4中的3个测试用例满足了所有条件可能取值至少出现一次,以及所有判定语句可能结果也至少出现一次的要求。
相比于条件覆盖、判定覆盖,判定-条件覆盖弥补了两者的不足之处,但是由于判定-条件覆盖没有考虑判定语句与条件判断的组合情况,其覆盖范围并没有比条件覆盖更全面,判定-条件覆盖也没有覆盖acd路径,因此判定-条件覆盖仍旧存在遗漏测试的情况。