2017-09-18 65 views
1

私はFindBugを使用しています。ドキュメント化の目的で生成された.XMLレポートを理解したいと思います。FindBugsのバグのランク、カテゴリ、タイプの関係

サンプルは次のとおりです。

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

だから、カテゴリCORRECTNESSRANGE_ARRAY_INDEXがランク7はそれがscary一つであるされたタイプだと思われ。それはいつも真実ですか? RANGE_ARRAY_INDEXはいつもscaryですか?

私はそれらの間の関係について言及するすべてのリソースを見つけることができませんでした。我々はいくつかのカテゴリを持っているようだと私はFindBugs Bug DescriptionsFindBugs 2 sitethis 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)

手を煩わせるそして、それはドキュメントでありますよう、我々は多くの種類があります。

誰もが私にこれを助けることができますか?

答えて

1

は、一部は以下に引用かなりよくそれを説明するデビッド・ハークネスによってanswerがあります。私もSpotBugs codeをチェックしました。 SpotBugsはFindBugs' successorです。要するに:

  • タイプ - これが見つかったBugPatternの名前だけです。
  • カテゴリー - カテゴリはFindBugsの中にハードコードBugPatternsをグループ化するためです。たとえば、RANGE_ARRAY_INDEXは常にCORRECTNESSカテゴリに入ります(そして、DumbMethods検出器によって報告されています)。
  • ランク - ランクは、変えることができる複雑な計算の結果であり、見つかったバグの重大度を示しています。これは20(最低)から1(最高)まで変化し、UIは値をscariest,scary,troublingおよびof concernの4つのカテゴリにグループ化します。(Harkness)したがって、特定のNullPointerExceptionが1になる可能性があり、パフォーマンスの向上が12になる可能性があります。
  • 優先度 - 計算された値はさまざまです。見つかったバグが実際にバグであるという確信を示します。 FindBugsはヒューリスティックを採用していますが、これは間違っている可能性があります。それは1(最も高い信頼度)から5(最も低い信頼度、無視される)まで変化する。長い時間の間、これをもっと明確にするために優先度がの信頼度に変更されました。互換性の理由からXMLにはまだpriorityと記載されています。
+0

ありがとうございました。 'したがって、特定のNullPointerExceptionが1になる可能性があり、パフォーマンスの改善の可能性があるだけで12になる可能性があります。 NullPointerExceptionは常にランク1を取得していませんか?そうでない場合、ランクの計算の基準は何ですか。 – prime

+0

はい、ヒューリスティックです。 [BugRanker](https://github.com/spotbugs/spotbugs/blob/3.1.0_RC5/spotbugs/src/main/java/edu/umd/cs/findbugs/BugRanker.java#L39-L79)フレームワークがあります、特定の[調整](https://github.com/spotbugs/spotbugs/blob/3.1.0_RC5/spotbugs/etc/bugrank.txt)、および分析されたコードによる影響の可能性があります。これらのすべてが最終ランクに影響します。 –

+0

Hmmの場合、NullPointerExceptionは1以外のランクを取得する可能性があります。 – prime

関連する問題