Code coverage 声纳总覆盖范围

Code coverage 声纳总覆盖范围,code-coverage,sonarqube,metrics,Code Coverage,Sonarqube,Metrics,声纳给出了总覆盖率的值,该值是线路覆盖率和分支覆盖率的组合。我不确定这个指标有多重要。全面覆盖的价值意味着什么?它如何比线路和分支机构覆盖更好?任何建议都会有帮助 以下是计算总覆盖率的方法: 如果分支覆盖率低于行覆盖率(因此低于总覆盖率),这意味着单元测试测试的是主要情况,而不是真正的角落情况。来自Sonar的文档: 它是线路覆盖和条件覆盖的混合。它的目标是 为以下问题提供更准确的答案:如何 单元测试涵盖了很多源代码 来源:谢谢大卫!如果总覆盖率是行覆盖率和分支覆盖率的组合,那么如何添加这些分数

声纳给出了总覆盖率的值,该值是线路覆盖率和分支覆盖率的组合。我不确定这个指标有多重要。全面覆盖的价值意味着什么?它如何比线路和分支机构覆盖更好?任何建议都会有帮助

以下是计算总覆盖率的方法:


如果分支覆盖率低于行覆盖率(因此低于总覆盖率),这意味着单元测试测试的是主要情况,而不是真正的角落情况。

来自Sonar的文档:

它是线路覆盖和条件覆盖的混合。它的目标是 为以下问题提供更准确的答案:如何 单元测试涵盖了很多源代码


来源:

谢谢大卫!如果总覆盖率是行覆盖率和分支覆盖率的组合,那么如何添加这些分数?我仍然不确定行覆盖率和总覆盖率之间的区别,因为两者都衡量覆盖的代码量。这个答案是不完整的。有一个覆盖度量,它实际上是所描述的线路和分支覆盖的组合。但是总体的测试覆盖率指标是集成测试覆盖率(it测试覆盖率)和单元测试覆盖率(覆盖率)的组合。如果任一测试覆盖了一条线或一个条件,则将其视为覆盖。
Coverage = (CT + CF + LC)/(2*B + EL)

where

CT = conditions that have been evaluated to 'true' at least once
CF = conditions that have been evaluated to 'false' at least once
LC = covered lines = lines_to_cover - uncovered_lines

B = total number of conditions
EL = total number of executable lines (lines_to_cover)