FindBugs 漏洞等级、类别和类型的关系

pri*_*ime 4 findbugs spotbugs

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

我得到的样本如下。

<BugInstance type="RANGE_ARRAY_INDEX" priority="2" rank="7" abbrev="RANGE" category="CORRECTNESS" first="1">
Run Code Online (Sandbox Code Playgroud)

因此,似乎RANGE_ARRAY_INDEX类别类型CORRECTNESS具有排名,7因此它是scary一个。那么它总是正确的吗?是RANGE_ARRAY_INDEX永远是scary一个?

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

我提到了FindBugs Bug DescriptionsFindBugs 2 站点以及这个没有明确答案的问题

好像我们有几个类别,

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

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

我们有很多类型,因为它在文档中。

谁可以帮我这个事 ?

bar*_*uin 5

大卫·哈克尼斯 (David Harkness ) 的回答很好地解释了这一点,部分引用如下。我还检查了SpotBugs 代码。SpotBugs 是FindBugs 的继任者。简而言之:

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