是否存在这样的情况,即您可以拥有 100% 的分支覆盖率,但仍有未测试的 DU 路径?如果是这样,我可以举一个简单的例子吗?
谢谢
最佳答案
如果我正确理解定义使用路径(对于每个设置值,都需要进行测试以到达使用该值的点),我认为分支覆盖率并不能保证这一点。考虑以下程序:
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”的地方。
关于testing - 分支覆盖和 DU 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18437576/