【问题标题】:Relationship of FindBugs bug rank, category and typeFindBugs bug 等级、类别和类型的关系
【发布时间】:2017-09-18 16:10:53
【问题描述】:

我正在使用 FindBug,我想了解它生成的 .XML 报告以用于文档目的。

我得到的样本如下。

<BugInstance type="RANGE_ARRAY_INDEX" priority="2" rank="7" abbrev="RANGE" category="CORRECTNESS" first="1">

因此,CORRECTNESS 类别的 RANGE_ARRAY_INDEX 类型似乎具有 7 等级,因此它是 scary 之一。那么它总是真实的吗? RANGE_ARRAY_INDEX 总是一个 scary 吗?

我找不到任何提及它们之间关系的资源。

我提到了FindBugs Bug DescriptionsFindBugs 2 site this SO question which dose not have a clear answer

看起来我们有几个类别,

  1. 不好的做法
  2. 正确性
  3. 实验性
  4. 国际化
  5. 恶意代码漏洞
  6. 多线程正确性
  7. 性能
  8. 安全性
  9. 狡猾的代码

还有

  • 最可怕的(1-4),
  • 吓人 (5-9),
  • 麻烦(10-14)
  • 关注(排名 15-20)

我们有很多类型,就像文档中一样。

谁能帮我解决这个问题?

【问题讨论】:

    标签: findbugs spotbugs


    【解决方案1】:

    David Harkness 有一个answer 很好地解释了它,部分引用如下。我还检查了SpotBugs code。 SpotBugs 是FindBugs' successor。简而言之:

    • Type - 这只是找到的 BugPattern 的名称。
    • 类别 - 该类别用于对 BugPatterns 进行分组,在 FindBugs 中硬编码。例如,RANGE_ARRAY_INDEX 将始终属于 CORRECTNESS 类别(由 DumbMethods 检测器报告)。
    • 排名 - 排名是复杂计算的结果,可能会有所不同,并表明发现的错误的严重性。 从 20(最低)到 1(最高)不等,UI 将值分为四类:scariestscarytroublingof concern(Harkness)因此,某个 NullPointerException 可能会得到 1,而潜在的性能改进可能只会得到 12。
    • 优先级 - 也是一个变化的计算值。它表明发现的错误实际上是错误的信心。 FindBugs 采用可能出错的启发式方法。它从 1(最高置信度)到 5(最低置信度,可忽略)不等。很长一段时间以来,优先级都被重命名为信心,以便更清楚地说明这一点。出于兼容性原因,XML 仍然显示 priority

    【讨论】:

    • 感谢您的回答。 So, a certain NullPointerException might get a 1, and a potential performance improvement might just get a 12. 还有mights。 NullPointerException 不是总是排名 1 吗?如果不是,排名计算的标准是什么。
    • 是的,这些都是启发式的。有一个BugRanker 框架,具体adjustments,可能会受到分析代码的影响。所有这些都会影响最终排名。
    • 嗯,那么 NullPointerException 可能会获得 1 以外的排名。?
    • 是的,绝对的!
    猜你喜欢
    • 2012-04-16
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 2019-11-28
    相关资源
    最近更新 更多