我在ISTQB -基础级样本论文中看到了以下问题。
如果下面的伪代码是一种编程语言,那么需要进行多少测试才能达到100%的语句覆盖率?
答案
A. 1
B. 2
C. 3
D. 4
我相信答案是2,因为你可以通过涵盖以下路径来涵盖所有的陈述。

然而,许多网站(请找到一个网站列表的末尾)说,答案是3。
我有两个问题:
链接到上面说3是正确答案的地方。
发布于 2016-12-12 10:16:51
是也不是。它在功能上是正确的:它准确地描述了代码应该做什么。但是,在代码中,Display_messageZ是在两个地方调用的(而不是在图表中)。
因为您遵循图表而不是代码,所以您错过了对Display_messageZ的第二次调用来实现完整的语句覆盖。它是相同的语句,但是它仍然是不同的代码行,所以它们都需要用这种类型的覆盖率来执行。
发布于 2016-12-12 09:18:17
这个问题的答案是3。这是为什么,
这里有两个if语句。每条if语句都有2条可能的输出。因此,对于每个if语句2,将需要测试用例。
在上述情况下,if语句是嵌套的,也就是说,1 if语句位于另一个if语句中。
因此,对于第一个if语句:
案例1:如果条件为真,则显示消息x并进入嵌套的If语句(继续到案例3)。
案例2:如果条件为false,跳过嵌套的If语句并显示消息z。
案例3:如果嵌套条件为true,则显示消息y。
案例4:如果嵌套条件为false,则显示消息z。
在这里,嵌套的if语句有两个不同的其他语句。因此,为了涵盖内部if语句的其他条件(语句),您将需要一个额外的测试用例,这使得总共有3个测试用例。
在嵌套if条件的情况下,我通常的方法是总case = if语句的数目+1
发布于 2016-12-12 11:15:33
正确的流程图

答案是C=3
https://sqa.stackexchange.com/questions/24275
复制相似问题