无法获得正确的输出

时间:2013-01-18 15:59:44

标签: unit-testing code-coverage

您好,我正准备参加竞争性考试。在解决前几年的问题时,我遇到了这个问题

以下程序将针对声明范围进行测试:

begin
if (a== b) {S1; exit;}
else if (c== d) {S2;} 
else {S3; exit;}
S4;
end

下面给出的测试用例T1,T2,T3和T4用以下表示 变量a,b,c和d的值满足的属性。确切的值是 没有给出。

T1:a,b,c和d都相等

T2:a,b,c和d都是不同的

T3:a = b和c!= d

T4:a!= b和c = d

下面给出的哪个测试套件确保了对语句S1,S2,S3的覆盖 和S4?

(A)T1,T2,T3
(B)T2,T4
(C)T3,T4
(D)T1,T2,T4

现在我只得到T2作为答案。但他们给出的答案是选项D

请帮我解决问题

1 个答案:

答案 0 :(得分:4)

您必须记下每个测试用例所涵盖的内容,以及从中选择的内容:

  1. T1:仅执行S1
  2. T2:仅执行S3
  3. T3:仅执行S1
  4. T4:执行S2和S4
  5. 所以为了覆盖它们,你需要T1 + T2 + T4或T2 + T3 + T4。由于后者不是一种选择,因此您可以选择D。

    希望它有意义