連載
» 2006年07月29日 00時00分 公開

Eclipseで使えるテストツールカタログ(4):Eclipseで使える動的テスト支援ツール (3/4)

[珍田晋之介, 岡本隆史,株式会社NTTデータ]

テストコードの実行におけるストレスを軽減:
Automated Continous Testing

ツール名:Automated Continous Testing 1.2.1

URL:http://pag.csail.mit.edu/continuoustesting/

ライセンス:Eclipse Public License


 Automated Continuous TestingはEclipseの基本機能をうまく活用し、JUnitのテストコード作成を支援するツールです。一度テストコードを書いたことのある方だと、以下のようなことに困ったことがないでしょうか? 例えば、テスト対象クラスのバグ修正に伴い、テストコードに含まれるあるテストメソッドのみを修正したとします。このとき、テストコードの実行は修正したテストコードのみ(あるいは修正に関連するテストメソッドのみ)を実行したいのに、通常はテストコードに含まれるすべてのテストメソッドを再実行することになります。このとき、仮にテストコードの実行時間が1秒や2秒以下であれば、それほど問題になりませんが、10秒以上かかるような場合は、テストの実行において非常にストレスとなります。Automated Continuous Testingではこのような問題に対して、いくつかの有効な機能を提供してくれます。

 今回紹介するほかの2つのツール(TPTP、djUnit)は、どちらかというとテストコードの作成そのものを支援する機能の色合いが強く、Automated Continuous Testingはテストコードの実行において、開発者のストレスを軽減させるような小技的な機能を提供してくれます。

特徴

 Automated Continuous Testingの特徴は以下になります。

・テストコードを保存した時点でテスト実行が可能

 Automated Continuous Testingではテストコードを保存した時点(Just In Time)でテスト実行結果を表示することが可能です。テストコードを作成しながらタイムリーにテスト実行を行い、テスト失敗の原因を修正したい場合には有効な機能です。

・実行したいテストの選択やテストに対する優先順位の決定が可能

 JUnitのテストスイートを実行する場合は、常に同じ順序でテストが実行されますが、Automated Continuous Testingを使用することで、テストの実行順序をカスタマイズしたり、必要となるテストのみを選択し、実行させることができます。

 テストの実行順序やテストのフィルタリングは、Automated Continuous Testingが提供するフィルターを選択することによって可能になります。フィルター定義方法については、本プラグインを紹介したURLにて公開されているので、そちらをご覧ください。

・多様なテストの結果表示が可能

 Automated Continuous TestingではJUnitの実行結果リストから必要な情報のみを選択して表示させることが可能です。

入手方法

 Automated Continous Testingを利用する場合は、Eclipseのアップデート機能を用いたインストールを行います。

 [ウィンドウ]→[設定]でEclipseの設定画面を開き、ツリーの部分に[Continuous Testing]が表示されていればインストールに成功しています。

使い方

 Automated Continuous Testingは下記の手順で利用します。

・プロジェクトの設定

 Automated Continuous Testingを利用できるようにプロジェクト設定を行います。

 プロジェクトのコンテキストメニューの[プロパティ]」を選択して表示されるプロジェクトのプロパティ画面(図6)にて、Automated Continuous Testingを選択し、[Enable Informed Testing]と[Enable Continuous Testing]のチェックボックスをチェックします。

図6 プロジェクトのプロパティ設定画面にてAutomated Continous Testingの設定を行う 図6 プロジェクトのプロパティ設定画面にてAutomated Continous Testingの設定を行う

・問題ビューの確認

 Eclipse環境にてAutomated Continuous Testingでチェックされた内容を正しく表示するために問題ビューの設定を確認します。問題ビューのフィルターのアイコンをクリックし、フィルターの設定のダイアログを表示し(図7)、タイプフィールドで表示された[Test Failure]がチェックされているか確認します。

図7 問題ビューの設定確認 図7 問題ビューの設定確認

・テストコードの実行

 テストコードを保存した時点で、テスト結果に問題のあるテストメソッド名が表示されます(図8)。

図8 問題ビューへのテスト結果(テスト失敗)の表示 図8 問題ビューへのテスト結果(テスト失敗)の表示

・テスト結果(テスト失敗)への対処

 問題ビューに表示されたテスト結果(テスト失敗)を右クリックし、以下のいずれかの操作を行います(図9)。

図9 問題ビューで表示された問題への対応機能 図9 問題ビューで表示された問題への対応機能

1.テストに戻る(Return Tests)

 指摘されたテストコードのテストメソッド行へフォーカスを移動します。問題が検出されたテストメソッドには以下のようなアイコンが表示されています。テストに問題があると検出されたコードについて、即対応をしたい場合には有効です。

図10 問題として検出されたテストコードの該当メソッド表示 図10 問題として検出されたテストコードの該当メソッド表示

2.全テスト失敗マークを削除する(Delete All Failures)

 Automated Continuous Testingが問題ビューに表示したすべてのテスト結果(テスト失敗)と、テストコードに表示されたテスト失敗マークを削除します。これは、開発者が何らかの理由で、テスト結果を無視したい場合に使用します。

注:ただし、テストコードのクラスを削除して再度生成した場合には、再表示されます。

3.テスト失敗マークを削除する(Delete Marker)

 Automated Continuous Testingが問題ビューに表示したテスト結果(テスト失敗)において、開発者が何らかの理由で、テスト結果(テスト失敗)を無視したい場合に使用します。

注:ただし、テストコードのクラスを削除して再度生成した場合には、再表示されます。

4.修正する(View Trace)

 JUnitビューに遷移し、テスト実行結果や、テストが失敗した原因を確認することができます。

フィルターによるテストの優先順位の決定方法

 Automated Continuous Testingでは、特徴でも簡単に説明しましたが、テストを実行する順番や、実行したテストのみを選択することができるフィルター機能を提供しています。ここでは設定に関して簡単に説明しておきます。詳細は、Automated Continuous Testingの本家のページを参照してください。

・プロジェクトの設定

 Automated Continuous Testingを利用できるようにプロジェクト設定を行います。

 プロジェクトのコンテキストメニューの[プロパティ]を選択して表示されるプロジェクトのプロパティ画面(図11)にて、Automated Continuous Testingを選択します。

 優先順位を選択する場合は、[Select Prioritizer]から選択リストを選択し、テストにフィルターを掛ける場合には、[Select Filter]の選択リストから最適なフィルターを選択します。

図11 プロジェクトの設定(テストの優先順位、フィルターの設定) 図11 プロジェクトの設定(テストの優先順位、フィルターの設定)

 デフォルトで選択できる優先順位の選択リストの内容と、フィルターの内容を下記に示します。

1 Random ランダムにテストを実行し、結果を表示する
2 Most Frequent Failures First テスト失敗として最も頻発するものを最初に実行し、表示する
3 No Recording JUnitによる通常のテスト実行方法(デフォルト)
4 Quick test first テスト実行が早い順に結果を表示する
5 Most Recent Failures First 前回のテストで失敗したテストを再度実行し、結果を表示する
6 Round Robin ラウンドロビン方式でテストを実行し、結果を表示する
<優先順位:(Prioritizer)>

1 Omit Previous Successes 前回のテストで成功したものはテスト実行対象から省略する
2 Default No Filter フィルターの設定なし(デフォルト)
3 Most Recent Failures Deleted 前回のテストで失敗したものをテスト実行対象から省略する
4 Informed Filter 前回のテストから変更されたテストメソッドのみ実行する
<フィルター:(Filter)>

 なお開発者は、カスタムで上記の優先順位の設定やフィルターを作成することができます。詳細は、Automated Continuous Testing本家のページを参照してください。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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