首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无条件分支和代码覆盖

无条件分支和代码覆盖
EN

Stack Overflow用户
提问于 2016-05-05 17:31:44
回答 1查看 374关注 0票数 1

因此,我了解到分支覆盖与决策覆盖不同,因为分支覆盖通常还包括无条件分支,例如方法调用、抛出、中断和C#中的其他关键字。但是,我想知道,这种分支覆盖实际上是否用于代码分析器?我怀疑他们使用决策覆盖范围,确保所有决策结果(即结果分支)都包括在内。我的意思是,下面的代码有两个条件,但有5个无条件的分支:

代码语言:javascript
复制
if(A)
  B();
  C();
  D();
  E();
else
 X();

我相信,如果我写一个测试来评估A是错误的,代码分析器会告诉我分支的覆盖率是50%。但是从无条件分支的角度来看,更多的将被执行。对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-05 17:35:47

分支覆盖率不会告诉您某个决策是否被测试为正确和错误。

示例:

代码语言:javascript
复制
 if (c) {
    x=...
 }
 y=...

如果c值为TRUE,则包含x=的块.执行,分支覆盖率将检测到这一点。它还将检测从y开始的代码是否已被执行。所以,如果C是真的,你将得到100%的覆盖率,而不知道如果C是假的会发生什么。

对于决策覆盖,如果您有100%的覆盖率,您就会知道C已经被评估,并且产生了真和假。

如果您的条件If有一个然后块和一个其他块,那么分支覆盖率和决策覆盖范围将提供相同的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37056764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档