FindBugsってなんぞや~?
静的テスト(静的コード解析)を実施するためのツールのようです。
静的コード解析
静的コード解析 (static code analysis) または静的プログラム解析 (static program analysis)とは、コンピュータのソフトウェアの解析手法の一種であり、実行ファイルを実行することなく解析を行うこと。逆にソフトウェアを実行して行う解析を動的プログラム解析と呼ぶ。静的コード解析はソースコードに対して行われることが多く、少数ながらオブジェクトコードに対して行う場合もある。また、この用語は以下に列挙するツールを使用した解析を意味することが多い。人間が行う作業はインスペクション、コードレビューなどと呼ぶ。
で、Wikipediaによると、Javaの場合の静的解析コードを実施するためのツールには、
- AntiC
- anyWarp CodeDirector (商用)
- Checkstyle
- Cobertura - 単体テスト網羅率を自動計算
- Coverity Quality Advisor (商用)
- Checkmarx CxSuite (商用)
- ESC/Java2
- FindBugs
- Fortify SCA(商用)
- Hammurapi
- Klocwork Insight (商用)
- Oracle JDeveloper
- PMD
- Spoon
- WALA
- 富士通ソフトウェア PGRelief J (商用)
- Parasoft Jtest (商用)
と、むちゃくちゃたくさんあるのですが、今回は、FindBugs というものを、ためしてガッテンといきたいと思います。
2018年1月13日(土)追記:
FindBugsの開発が停止し、後継はSpotBugsに引き継がれたようです。
FindBugsを導入してみる
Eclipseで、「ヘルプ(H)」>「Eclipse マーケットプレース(M)...」 を選択。
「検索(I)...」で「FindBugs」と入力すると、「FindBugs Eclipse Plugin 3.0.2」と出てくるの「インストール」をクリック。
「使用条件の条項に同意します(A)」にチェックを入れ、「完了(F)」をクリック。
以下のようなダイアログが表示されたら、「OK」をクリック。
再起動を求められたら、「はい(Y)」をクリック。
再起動後、「FindBugs」が使えるようになっているので、 テストしたいプロジェクトの上で右クリックし、「バグを検索」>「バグを検索(F)」を選択。
「ビュー」が表示されていない場合は、「ウィンドウ(W)」>「ビューの表示(V)」>「その他(O)...」を選択。
「FindBugs」>「バグ・エクスプローラー」を選択します。
「バグ・エクスプローラー」で「FindBugs」の実行結果 を確認できます。
バグがあると、ちゃんと表示してくれるみたいですね。
「バグ・エクスプローラー」のメッセージをダブルクリックすると、該当コードを表示してくれます。
listがnullの場合のときに、list.size() で「NullPointerException」の例外が発生することを警告してるようです。
FindBugsは、実行する前に、エラーの起こりそうな個所を特定してくれるようです。
・Eclipse findbugsのインストール手順 | ITSakura
今回はこのへんで。