0

是否存在您可以拥有 100% 分支覆盖率但仍有未测试的 DU 路径的情况?如果是这样,我可以举一个简单的例子吗?

谢谢

4

1 回答 1

2

如果我正确理解了定义使用路径(对于每个设定值,都需要有一个测试可以到达使用该值的点),我认为分支覆盖并不能保证这一点。考虑以下程序:

z = "foo"

if x > 10:
    z = "bar"
else
    pass

if y > 5:
    print z
else
    pass

现在,如果我们用 (x = 0, y = 10) 和 (x = 20, y = 0) 进行测试,我们会覆盖所有分支。第一个测试将评估第一个 if 中的 false 分支和第二个 if 中的 true 分支。第二个测试将评估第一个 if 中的 true 分支和第二个 if 中的 false 分支。涵盖了所有分支,但没有测试打印 z 会导致“bar”。

于 2013-08-26T06:38:24.847 回答