Java FindBugsを使ってみる

FindBugsってなんぞや~?

静的テスト(静的コード解析)を実施するためのツールのようです。

静的コード解析

静的コード解析 (static code analysis) または静的プログラム解析 (static program analysis)とは、コンピュータソフトウェアの解析手法の一種であり、実行ファイルを実行することなく解析を行うこと。逆にソフトウェアを実行して行う解析を動的プログラム解析と呼ぶ。静的コード解析はソースコードに対して行われることが多く、少数ながらオブジェクトコードに対して行う場合もある。また、この用語は以下に列挙するツールを使用した解析を意味することが多い。人間が行う作業はインスペクションコードレビューなどと呼ぶ。

静的コード解析 - Wikipedia

で、Wikipediaによると、Javaの場合の静的解析コードを実施するためのツールには、

と、むちゃくちゃたくさんあるのですが、今回は、FindBugs というものを、ためしてガッテンといきたいと思います。

 

FindBugsを導入してみる

Eclipseで、「ヘルプ(H)」>「Eclipse マーケットプレース(M)...」 を選択。

f:id:ts0818:20170720213132j:plain

「検索(I)...」で「FindBugs」と入力すると、「FindBugs Eclipse Plugin 3.0.2」と出てくるの「インストール」をクリック。

f:id:ts0818:20170720215321j:plain

「使用条件の条項に同意します(A)」にチェックを入れ、「完了(F)」をクリック。

f:id:ts0818:20170720215318j:plain

以下のようなダイアログが表示されたら、「OK」をクリック。

f:id:ts0818:20170720215315j:plain

再起動を求められたら、「はい(Y)」をクリック。 

f:id:ts0818:20170720215311j:plain

再起動後、「FindBugs」が使えるようになっているので、 テストしたいプロジェクトの上で右クリックし、「バグを検索」>「バグを検索(F)」を選択。

f:id:ts0818:20170720215307j:plain

 「ビュー」が表示されていない場合は、「ウィンドウ(W)」>「ビューの表示(V)」>「その他(O)...」を選択。

f:id:ts0818:20170720220245j:plain

FindBugs」>「バグ・エクスプローラー」を選択します。

f:id:ts0818:20170720220544j:plain

「バグ・エクスプローラー」で「FindBugs」の実行結果 を確認できます。

f:id:ts0818:20170720221902j:plain

 バグがあると、ちゃんと表示してくれるみたいですね。 

f:id:ts0818:20170720222044j:plain

「バグ・エクスプローラー」のメッセージをダブルクリックすると、該当コードを表示してくれます。

f:id:ts0818:20170720224218j:plain

listがnullの場合のときに、list.size() で「NullPointerException」の例外が発生することを警告してるようです。

FindBugsは、実行する前に、エラーの起こりそうな個所を特定してくれるようです。

 

 ・Eclipse findbugsのインストール手順 | ITSakura