因此,我了解到分支覆盖与决策覆盖不同,因为分支覆盖通常还包括无条件分支,例如方法调用、抛出、中断和C#中的其他关键字。但是,我想知道,这种分支覆盖实际上是否用于代码分析器?我怀疑他们使用决策覆盖范围,确保所有决策结果(即结果分支)都包括在内。我的意思是,下面的代码有两个条件,但有5个无条件的分支:
if(A)
B();
C();
D();
E();
else
X();我相信,如果我写一个测试来评估A是错误的,代码分析器会告诉我分支的覆盖率是50%。但是从无条件分支的角度来看,更多的将被执行。对吗?
发布于 2016-05-05 17:35:47
分支覆盖率不会告诉您某个决策是否被测试为正确和错误。
示例:
if (c) {
x=...
}
y=...如果c值为TRUE,则包含x=的块.执行,分支覆盖率将检测到这一点。它还将检测从y开始的代码是否已被执行。所以,如果C是真的,你将得到100%的覆盖率,而不知道如果C是假的会发生什么。
对于决策覆盖,如果您有100%的覆盖率,您就会知道C已经被评估,并且产生了真和假。
如果您的条件If有一个然后块和一个其他块,那么分支覆盖率和决策覆盖范围将提供相同的信息。
https://stackoverflow.com/questions/37056764
复制相似问题