我试图通过Alen Page,Ken Johnston,Bj Rollison的书“我们如何在微软测试软件”来理解Block Testing。在本书的第118和119页,我给出了两个块功能示例。
我提供了这些功能的图片:
该书说,块覆盖率测量分支未绑定的连续语句组的数量。我相信我不理解这一点。
有人可以解释原因吗
int x = 0, y = 0, z = 0;
if (condition)
被视为BlockExample1
和
int x = 0, y = 0, z = 0;
if (condition 1 && condition2)
被视为BlockExample2
中的4个区块?
答案 0 :(得分:3)
以下是相关代码的简化:
int x = 0;
if (c1 && c2)
{
x = 1;
}
由于可能发生短路(c1
如果为false),该代码等同于以下内容:
int x = 0; > #1 > #5
if (c1) | |
{ > #4 |
if (c2) > #2 | |
{ > #3 | |
x = 1 | | |
} | | |
} | |
相比之下,此代码具有更少的块:
int x = 0; > #1 > #3
if (c1) | |
{ > #2 |
x = 1 | |
} | |