FindBugs错误排名,类别和类型

时间:2017-09-18 16:10:53

标签: findbugs spotbugs

我正在使用FindBug,我想了解它生成的.XML报告以供记录。

我得到的样本如下。

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

因此,似乎RANGE_ARRAY_INDEX类的CORRECTNESS类型的排名为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. 狡诈代码
  10. 并且

    • 最可怕的(1-4),
    • 可怕(5-9),
    • Troubling(10-14)
    • 关注(等级15-20)

    我们在doc中有很多类型。

    有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

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

  • 类型 - 这只是找到的BugPattern的名称。
  • 类别 - 该类别用于对在FindBugs中硬编码的BugPatterns进行分组。例如,RANGE_ARRAY_INDEX将始终属于CORRECTNESS类别( DumbMethods 检测器报告的内容)。
  • 等级 - Rank是复杂计算的结果,可以变化,并指示找到的bug的严重性。 从20(最低)到1(最高)不等,用户界面将值分为四类:scariestscarytroublingof concern(Harkness)因此,某个NullPointerException可能会得到1,潜在的性能提升可能会得到12。
  • 优先级 - 也是一个变化的计算值。它表明找到的bug实际上是一个bug的信心。 FindBugs采用可能出错的启发式方法。它从1(最高置信度)到5(最低置信度,不予考虑)不等。很长一段时间以来,优先级已重命名为置信度,以使此更清晰。出于兼容性原因,XML仍然说priority