【问题标题】:What is the formula for calculating the test metrics in Sonarqube?Sonarqube 中测试指标的计算公式是什么?
【发布时间】:2016-01-14 10:19:01
【问题描述】:

我正在使用 SonarQube 4.5.4,我想知道单元测试的测试字段中的度量公式 - 请考虑下图。我得到你在下面找到的值。看完SonarQube's documentation on metrics我还是一头雾水。

我只找到以 % 为单位的单元测试成功密度。设 ρ 为密度,mu 为单元测试数,me 为单元测试错误数,mf 为单元数测试失败。然后我们有

这是正确的吗?其他值的公式是什么?

【问题讨论】:

    标签: math sonarqube metrics


    【解决方案1】:

    UT Coverage(或覆盖率)计算如下(注意所有变量都是Double):

    Double utCoverage = ((((totalConditions - totalUncoveredConditions) + totalLines) - totalUncoveredLines) / (totalConditions + totalLines)) * 100;
    

    使用conditions_to_coveruncovered_conditionslines_to_coveruncovered_lines 指标作为值。

    IT 覆盖率和总体覆盖率使用相同的公式计算,但使用的指标不同。

    对于 IT 覆盖率,您必须使用 it_conditions_to_coverit_uncovered_conditionsit_lines_to_coverit_uncovered_lines 指标。

    对于整体覆盖率,您必须使用 overall_conditions_to_coveroverall_uncovered_conditionsoverall_lines_to_coveroverall_uncovered_lines 指标。

    如果您正在寻找条件覆盖公式,这里是:

    Double conditionCoverage = ((totalConditions - totalUncoveredConditions) / totalConditions) * 100;
    

    以下是线路覆盖:

    Double lineCoverage = ((totalLines - totalUncoveredLines) / totalLines) * 100;
    

    同样,您必须使用正确的指标来提供公式(见上文。)

    希望对你有帮助。

    注意:这是从我的综合 pdf 报告生成工具中获取的。它已在代表超过 2 mio NCLOC 的项目上成功测试,并用于生成每周报告(换句话说,我非常有信心它可以工作。)

    【讨论】:

      【解决方案2】:

      到目前为止,我唯一能回答的是你的公式不正确,因为你误读了括号。

      正确的公式是,用你的符号:

      您的屏幕截图中的其他值在文档中定义(其中“Coverage”是您的“Unit Test Coverage”):

      条件覆盖率 = (CT + CF) / (2*B)
      线路覆盖 = LC / EL
      覆盖率 = (CT + CF + LC)/(2*B + EL)

      在哪里

      CT = 至少一次被评估为“真”的条件
      CF = 至少一次被评估为“假”的条件
      LC = 覆盖线 = lines_to_cover - 未覆盖线

      B = 条件总数
      EL = 可执行行总数 (lines_to_cover)

      这些数字介于 0 和 1 之间,乘以 100 得到百分比。

      【讨论】:

      • 是的。我可能读得很快。那么覆盖率是否等于单元测试覆盖率?
      • 确实,coverage 表示 UT 覆盖范围。 IT 覆盖率和总体覆盖率的公式相同,但使用的指标不同(请参阅我的答案)
      猜你喜欢
      • 1970-01-01
      • 2011-04-12
      • 2021-01-23
      • 2011-11-01
      • 1970-01-01
      • 2022-06-17
      • 1970-01-01
      • 1970-01-01
      • 2016-07-16
      相关资源
      最近更新 更多