多个条件覆盖是否始终意味着分支覆盖?

时间:2015-12-18 07:00:04

标签: testing code-coverage

多个条件覆盖是否意味着分支覆盖?

我一直在网上阅读不同覆盖标准之间的一些比较,并且我发现一些资源声称多个条件覆盖并不一定意味着分支覆盖,而其他人声称它确实是因为它测试了所有可能的组合。

据我所知,使用短路逻辑运算符很难实现多条件覆盖,但我不确定这是否与比较有关。

2 个答案:

答案 0 :(得分:1)

是。多条件覆盖(MCC)意味着分支覆盖。

与普通条件覆盖不同,MCC指标处理影响决策的所有条件组合。决策控制分支。

在这种意义上,多个条件覆盖与MC/DC非常相似。

答案 1 :(得分:0)

不,它没有。

逻辑上它应该,但是你可以在代码中有一个缺陷,导致条件总是评估为例如假,尽管有子条件的组合。 例如。 (来自Bullseye.com):

bool f(bool e) { return false; }
bool a[2] = { false, false };
if (f(a && b)) ...
if (a[int(a && b)]) ...
if ((a && b) ? false : false)