ソフトウェア開発において、テストを行う際に、テストがきちんと行われているかどうか検証する必要があります。テストの検証を行わないと、テスト漏れによりバグが発見できず、システム運用時に思わぬ不具合を引き起こす可能性があります。
そこで、テストの検証を行う手段として、カバレッジがあります。カバレッジはコード中のテストにより実行されたコード、もしくは、分岐の網羅性のことであり、カバレッジが100%であれば、すべてのコードがテストにより実行されたことになります。カバレッジを用いることにより、テストによりアプリケーションのコードが漏れなく実行されているかどうか確認することでテストの網羅性を検証することができます。また、テストによって実行されなかったコードを調査することにより、テスト漏れの原因を解析することもできます。djUnitを利用すると、JUnitで作成したテストのカバレッジを簡単に測定することができます。
■特長
djUnitは次のような特長を持ちます。
・JCoverageによるレポート機能
djUnitは内部でJCoverageを利用しており、グラフでパッケージ、クラスごとのカバレッジの測定結果を表示することができます。います。また、テスト漏れがあるコードをEclipseのJavaソースエディタ上で簡単に確認することができます。
・簡易レポート機能
メソッドの実行時間、Exception発生時のスタックトレース情報などを、コードを変更することなく確認することができます。
・Virtual Mock Objectsを使ったテスト
ユニットテストを行う際に、テストしたいクラスがほかのクラスに依存していると、単体テストが困難なことがあります。djUnitのVirtual Mock Objectsの機能を利用すると、クラスに改変を加えることなく、メソッドの返却値を設定することができます。詳細はTechnical Solution Group Wikiを参照ください。
■入手方法
下記のURLからダウンロードできます。
Eclipseのプラグインディレクトリに解凍します(執筆時の最新バージョンは、jp.co.dgic.eclipse.jdt.djunit_3.0_0.7.0-beta2)。
■使い方
まず、JUnitのテストを用意します。Eclipseのメニューから[実行]->[djunit]を選択すると、JUnitのテストが実行され、カバレッジレポートが出力されます(図5)。
カバレッジレポートは、全体に対するレポート(Coverage Report)、パッケージごとのレポート(Packages)、ファイルごとのレポート(All Files)に分かれており、それぞれ、行の網羅率(%line)と、分岐の網羅率(%branch)が数字とグラフで表示されます。グラフの赤い場所が多いほど、メソッド、ファイル中にテストにより実行されなかったコードが多くなります。レポート画面上で、網羅率が100%でないクラスをクリックすると、そのクラスがJavaエディタ上で表示され、テストにより実行されていない部分がマーキングされます(図6)。開発者は、このマーキングされた部分が実行されるようなテストコードを書き、カバレッジが100%になるようにします。
Copyright © ITmedia, Inc. All Rights Reserved.