【问题标题】:Why are the errors reported by Coverity with version 7.7 and 2020.12 different for same code-base?为什么相同代码库的 Coverity 7.7 和 2020.12 报告的错误不同?
【发布时间】:2021-07-27 12:13:32
【问题描述】:

我正在迁移 Coverity 服务器,其中 Coverity 在新旧服务器上具有 7.7 和 2020.12 版本。

我可以看到 Coverity 在这 2 个 Coverity 服务器上报告相同代码库的不同错误。大多数错误在两个服务器上都很常见,但有一些错误是最新版本的 Coverity (v 2020.12) 未报告但较早报告的错误(由 Coverity 版本 7.7),反之亦然。

如何确定新的 Coverity 服务器是否报告了合法错误? 还想知道如果覆盖版本不同,我们可以看到什么样的差异以及这种差异的原因是什么?

【问题讨论】:

  • 您必须检查所报告的错误,这些错误是不同的,并确定这是否是合法问题。

标签: static analysis coverity


【解决方案1】:

第一季度。我们如何确定新 Coverity 是否报告了合法错误?

您必须单独检查差异,以查看每个差异是误报(不正确)还是真阳性(正确)。如果在合理的时间内这样做太多,请随机抽样以获得统计估计。请注意,准确检查静态分析结果非常耗时;我通常为每个人安排 5-10 分钟。

第二季度。如果 Coverity 版本不同,我们可以看到什么样的差异?

实际上不可能对可能出现的定性差异做出任何限制。

从数量上,至少从历史上看,Coverity 开发人员试图确保“流失”不超过 5%,其中流失定义为:

  new false positives + lost true positives
  -----------------------------------------
           number of old findings

此 5% 规则适用于后续的主要版本。升级多个主要版本时的流失率可能更高。

新的真阳性或丢失的假阳性的数量没有限制。

第三季度。造成这种差异的原因是什么?

Coverity 工具正在不断开发中,目的是(以及其他目标)发现更多的真阳性和更少的假阳性。在实现这一意图的情况下,新结果应该比旧结果“更好”(总体上更准确)。

但是,与任何软件一样,在某些情况下,可能会犯错误(或有意权衡)导致结果不太准确。

除了这些一般性声明外,发行说明可能包含有关更改内容的更多详细信息。

【讨论】:

    猜你喜欢
    • 2012-10-28
    • 2020-07-03
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    相关资源
    最近更新 更多