
CoolなEclipseプラグイン(2)
ソフトウェアの品質向上を支援するプラグイン
NTTデータ オープンソース開発センタ
岡本隆史
2005/4/16
| INDEX |
今回は、ソフトウェアのレビュー/テスト/デバッグを助け、ソフトウェアの品質向上に役立つプラグインを紹介しましょう。バグの存在する可能性があるコードを指摘する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の設定 |
各バグコードの内容は、Detector Descriptionの列に記述してあります。
・問題ビューの設定
問題ビューのフィルターのアイコン(図2)をクリックし、フィルターの設定のダイアログを表示(図3)、タイプフィールドのFindBugs
Problemをチェックします。
![]() |
| 図2 フィルターの設定 |
![]() |
| 図3 フィルターの設定ダイアログ |
プロジェクトを右クリックし、「FindBugs」を選択すると、FindBugsが実行され、問題がある個所が図4のように「問題ビュー」に表示されます。
![]() |
| 図4 検出されたバグの画面 |
問題ビューに表示された問題をクリックすると、問題があるコードをエディタに表示します。図4では、選択した問題に「ストリームのクローズに失敗する可能性があります。」と表示されていますが、エディタに表示されたコードを見ると確かにreaderをクローズしていないことが分かります。このようにFindBugsにより、開発者のケアレスミスによる誤りを簡単に発見することができます。
Javaプロジェクトのパッケージ・エクスプローラーに表示されているプロパティファイルをクリックして開くだけで、PropertiesEditorでプロパティファイルを編集できます。PropertiesEditorで編集できない場合は、一度ファイルを閉じてプロパティファイルを右クリック→[アプリケーションから開く]→[PropertiesEditor]を選択してください。後は、通常のテキストエディタの操作と同じです。ファイルは保存されると自動的にUnicodeエスケープ形式で保存されます。
| 1/3 |
|
INDEX |
||
| 1.FindBugs | ||
| 2. djUnit | ||
| 3.Enerjy Thread Profiler | ||
CoolなEclipseプラグイン バックナンバー
- 第1回 Javaのプロパティファイルを編集するEclipseプラグイン
- 第2回 ソフトウェアの品質向上を支援するプラグイン
- 第3回 データベース開発を支援するプラグイン
- 第4回 Webアプリケーション開発を支援するプラグイン
- 第5回 正規表現の入力・テストを行うプラグイン
- 第6回 サンプルコードの入手をサポートするプラグイン
- 第7回 プログラミングにあると便利なプラグイン
- 第8回 RSSを表示できるEclipseプラグイン
- 第9回 データベースの利用に便利なEclipseプラグイン
- 第10回 スクリプト言語をサポートするEclipseプラグイン
- 第11回 ビルドを効率化するEclipseプラグイン
- 第12回 便利なプラグインの集大成MyEclipse
- 第13回 簡単にFlashアプリを作成できるFlexBuilder 2
- 第14回 軽量なUMLプラグインAmaterasUML
- 第15回 バージョン管理に便利なSubversiveプラグイン
- 第16回 EPFプラグインでらくらく開発プロセス管理!(入門編)
- 第17回 EPFプラグインでらくらく開発プロセス管理!(実践編)
- 第18回 お決まりコードを設計書から自動生成するblancoCsv
- 第19回 Project Zeroでスクリプト+Ajaxのアジャイル開発
- 第20回 ERダイアグラムを編集するAmaterasERDでDB設計
- 第21回 Apache LDAP StudioでLDAPはもう怖くない
- 第22回 JavaScriptを書かずにAjaxを実現するjMaki
- 第23回 Mylyn&Tracでリズムに乗ってタスクを大掃除♪
- 第24回 これはすごい!? コード品質のカイゼン化プラグイン2種
| Java Solution全記事一覧 |
TechTargetジャパン
- EclipseでScalaプログラミングを始めるための基礎 (2012/2/10)
概要や5つの特徴を紹介し、開発環境を構築して対話型実行環境「REPL」やEclipse上でHello Worldを実行します - 並列分散処理の常識をHadoopファミリから学ぶ (2012/2/8)
並列分散処理の課題やHadoopの長所/短所、そして短所を補うHadoop関連プロジェクトの構成や概要などを簡単に紹介 - WebLogicサーバ最新版「12c」の気になる4つの特徴 (2012/1/31)
久々にメジャーアップグレードしたJavaアプリケーションサーバについて、製品担当者に軽量インストーラなどの特徴を聞いた - GitHubをもっとソーシャルに使いこなすための7つ道具 (2012/1/23)
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。特に連動クラウド「fluxflex」が注目だ
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




