设计下列伪程序的条件组合覆盖测试用例。
BEGIN
INPUT(A,B)
IF(A>0) AND (B>0) THEN
X=A+B
ELSE
X=A-B
END
IF (C>A) OR (D Y=C-D
ELSE
Y=C+D
END
PRINT(X,Y)
END

答案
条件组合覆盖标准为,使得每个判定表达式中条件的各种可能组合都至少出现一次。
本程序中共有两个判定表达式,每个判定表达式中有两个简单条件,因此,总共有8种可能的条件组合,它们是:
A>0,B>0
A>0,B<=0
A<=0,B>0
A<=0,B<=0
C>A,DA,D>=B
C<=A,D=B
下面的4个测试用例,可以使上面列出的8种条件组合每种至少出现一次:
实现1,5两种条件组合
输入:A=1,B=1,C=2,D=0
预期的输出:X=2,Y=2
实现2,6两种条件组合
输入:A=1,B=0,C=2,D=1
预期的输出:X=2,Y=1
实现3,7两种条件组合
输入:A=0,B=1,C-1,D=0
预期的输出:X=-1,Y=-1
实现4,8两种条件组合
输入:A=0,B=0,C=-1,D=1
预期的输出:X=0,Y=0