連載
» 2005年04月16日 00時00分 UPDATE

CoolなEclipseプラグイン(2):ソフトウェアの品質向上を支援するプラグイン (1/3)

[岡本隆史,NTTデータ オープンソース開発センタ]

 今回は、ソフトウェアのレビュー/テスト/デバッグを助け、ソフトウェアの品質向上に役立つプラグインを紹介しましょう。バグの存在する可能性があるコードを指摘するFindBugs、カバレッジによりユニットテストの網羅性を検証するdjUnit、スレッドの問題の検出を助けるEnerjy Thread Profilerの3プラグインです。

1.FindBugs

 プログラムのバグ検出の手段として、プログラムを動作させずにバグを検出する静的解析があります。Eclipseも簡単な静的解析機能を備えています。コード中で初期化されないオブジェクトを参照する機能や、depricateなメソッドを利用した場合など、推奨されないコードを書くと黄色でランプマークを表示する機能などです。

 FindBugsプラグインは、Eclipseの標準機能以上に強力な静的解析の機能を提供します。ある特定のコードパターンにマッチする部分をプログラム中から抽出し、バグの可能性を示唆することにより、より強化されたコードチェックを行うことができます。例えば、ストリームのクローズ忘れ、メソッドの戻り値の無視、NullPointerExceptionが発生する可能性がある場所など、プログラマがうっかり誤ってしまうようなバグも検出することができ、ケアレスミスによるバグの混入を未然に防止することができます。

■特長

 FindBugsの特長は以下のように要約できます。

・導入が簡単
 テストコードを書くことなく、ソフトウェアの品質を向上させることができます。導入が非常に簡単です。

・適用するパターンをカスタマイズ可能
 利用したいバグパターンを選択し、不要なパターンは検出しないようにすることができます。これにより、プロジェクトごとにバグパターンの検出方針を変更することができます。

・コードパターンをカスタマイズ可能
 チェックしたいコードパターンをカスタマイズすることができます(カスタマイズの詳細はhttp://www-6.ibm.com/jp/developerworks/java/040625/j_j-findbug2.htmlを参照)。

・検出精度は100%ではない
 すべてのバグが100%検出できるわけではありませんし、検出された場所に必ずバグがあるというわけではありません。あくまでバグが存在する可能性のある個所、バグの原因となり得る個所を検出するにとどまります。

・プログラマの教育に
 不適切なコードを検出するので、プログラマの教育にも利用できます。

■入手方法

下記のURLからプラグインをダウンロードします。

 ダウンロードするプラグインは次の2つです。

プラグイン バージョン
de.tobject.findbugs 0.0.10
edu.umd.cs.findbugs 0.8.3

 上記のバージョンは最新版ではありませんが、edu.umd.cs.findbugs 0.8.5までのバージョンは不具合があり、日本語環境では動作しないので注意してください。0.8.6以降は修正されています。ダウンロードしたプラグインをEclipseのプラグインディレクトリへ解凍すればインストールは完了です。

■使い方

 FingBugsは下記の手順で利用します。

・プロジェクトの設定
 プロジェクトのプロパティ→FindBugsを選択し、「Enable FindBugs」のチェックボックスをチェックします。また、利用できるバグコードの一覧が表示されます。一番左の「Bugs codes」フィールドのボックスにチェックすることにより、検出するバグコードを設定します(図1)。

図1 FindBugsの設定 図1 FindBugsの設定

 各バグコードの内容は、Detector Descriptionの列に記述してあります。

・問題ビューの設定
 問題ビューのフィルターのアイコン(図2)をクリックし、フィルターの設定のダイアログを表示(図3)、タイプフィールドのFindBugs Problemをチェックします。

図2 フィルターの設定 図2 フィルターの設定
図3 フィルターの設定ダイアログ 図3 フィルターの設定ダイアログ

 プロジェクトを右クリックし、「FindBugs」を選択すると、FindBugsが実行され、問題がある個所が図4のように「問題ビュー」に表示されます。

図4 検出されたバグの画面 図4 検出されたバグの画面

 問題ビューに表示された問題をクリックすると、問題があるコードをエディタに表示します。図4では、選択した問題に「ストリームのクローズに失敗する可能性があります。」と表示されていますが、エディタに表示されたコードを見ると確かにreaderをクローズしていないことが分かります。このようにFindBugsにより、開発者のケアレスミスによる誤りを簡単に発見することができます。

 Javaプロジェクトのパッケージ・エクスプローラーに表示されているプロパティファイルをクリックして開くだけで、PropertiesEditorでプロパティファイルを編集できます。PropertiesEditorで編集できない場合は、一度ファイルを閉じてプロパティファイルを右クリック→[アプリケーションから開く]→[PropertiesEditor]を選択してください。後は、通常のテキストエディタの操作と同じです。ファイルは保存されると自動的にUnicodeエスケープ形式で保存されます。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。