对于n个条件的判定,为了达到MC/DC,一般需要n+1~2n个测试用例,测试用例的生成一般是按照条件真值表选择最小影响对组合。
但是MC/DC覆盖有一个缺点,多个判定有关联情况下的MC/DC,例如,有如下两个判定:
A = B OR C;
E = A AND D;
如果两个判定分别计算,则共有4个条件B、C、A和D。{BCD}={TFT,FTF,FFT}就能达到MC/DC100%。但是在同一个程序段中,A的取值实际是由B和C确定的,上述判定等价于E=(B OR C) AND D,这样就只有3个条件了。而此时,{BCD}={TFT,FTF,FFT}不足以达到MC/DC100%(C和D都没有单独影响判定结果E)。因此,对于逻辑等价的两种情况,可能需要不同的测试用例集才能达到MC/DC100%。