问题:
对这样一段代码:
if (a>2 && b<3 &line;&line; (c>4 && d<5))
statement;
请问,按照各种覆盖方法应该怎么考虑它的测试?
我们这里只给出Condition/Decision Coverage和Modified Condition/Decision Coverage两种覆盖方法的用例设计。
Condition/Decision Coverage:
条件 结果
a<2 b>3 c<4 d>5 (a<2 && b>3 &line;&line; (c<4 && d>5)
T T T T T
F F F F F这个很容易,就不解释了。
odified Condition/Decision Coverage:
基本思路:
表达式可以理解为(a<2 && b>3) &line;&line; (c<4 && d>5);
将表达式的理解为两个组合条件A or B形成的表达式,其中A为(a<2 && b>3),B为(c<4 && d>5);
对这个表达式,当A为F时,B是独立变量;当B为F时,A是独立变量;
则第一步的分析可以围绕A、B进行:
条件 结果
(A) (B) A or B
F T T
T F F
T F F
F F F
其中最后一组取值重复,最终根据这三种取值进一步分析。