在任何程序中,100%的声明覆盖率是否意味着100%的分支覆盖率?

2 testing code-coverage

在为练习测试解决MCQ时,我遇到了这样的说法 - "在任何程序中,100%的声明覆盖率意味着100%的分支覆盖率"并且它被称为不正确.我认为这是一个正确的陈述,因为如果我们涵盖所有陈述,那么这意味着我们也涵盖了所有路径,因此也覆盖了所有分支.有人可以对这个问题有所了解吗?

Ale*_*nze 9

考虑以下代码:

...
if (SomeCondition) DoSomething();
...
Run Code Online (Sandbox Code Playgroud)

如果SomeCondition总是如此,那么您可以拥有100%的声明覆盖率(SomeCondition并且DoSomething()将被覆盖),但是当您跳过时,您从不在条件为假时执行该操作DoSomething().

请参阅此处的各种覆盖范围的定义.