gpt4 book ai didi

testing - 不同类型循环的分支覆盖率

转载 作者:行者123 更新时间:2023-11-28 20:19:04 25 4
gpt4 key购买 nike

我知道如果我有这样的 if 语句...

if (x == y) {
foobar++;
} else {
if (x == z) {
foobar++;
}
}

为了获得 100% 的分支覆盖率,需要遍历 4 个分支。 2 个来自外部 if - else,1 个来自内部 if 语句,另一个来自 if 它没有进入内部 if 语句。

但是,对于这样的事情...

if (x == y) {
foobar++;
} else {
while (x < z) {
x++;
}
}

是否还需要 4 个分支机构才能达到 100% 的分支机构覆盖率?也就是说,不从 else 语句进入 while 循环算作一个单独的分支吗?

谢谢。

最佳答案

首先:没有 if 循环。它称为 if 语句。

关于您的问题:您的第一个示例只有 3 个分支。第一个 if 创建两个分支。在您的 else 中创建了另外两个分支,但这并不等于 4,因为它们是您 else 的子分支。

  if
/ \
1 else
|
if
/ \
2 3

while 循环的分支覆盖有点复杂。从理论上讲,一个循环可能会创建无限数量的分支,因为您不知道它运行或可以运行的频率。有几种实用的方法可以测量循环的覆盖范围。最简单的一个是有两个分支。一个执行循环 block 的地方,一个不执行循环 block 的地方。在这种情况下,您的示例中仍然会有 3 个分支。还可以考虑一个循环的三个分支:不运行、运行一次和运行多次。如果您使用这样的覆盖率测量,您将在第二个示例中有 4 个分支。

关于testing - 不同类型循环的分支覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18491418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com