Part4 テスト実行の実践方法
初公開日:2007/02/28
テストを実行するときは,ブラックボックス・テストを行ってから,ホワイトボックス・テストを行うようにすると効率的です。単体テスト・ツールとカバレッジ計測ツールは特に活用すべきでしょう。 それではテストの実行を実践してみましょう。テスト実行の進め方としては,次の二通りの進め方が考えられます。 (1)ホワイトボックス・テストを行ってからブラックボックス・テストを行う 今回は,(2)の進め方を説明していきます。 ブラックボックス・テストを先に行うメリットブラックボックス・テストをホワイトボックス・テストに先駆けて実施するメリットは次の三つです。 ◆効率が良い ◆ムダを防げる ◆重要なテストを先に実施できる JUnit+djUnitでテストを実行するテストの実行順を決めて,いよいよ実行準備→実行となっていくのですが,テストの実行を効率的に行うには,テスト・ツールをどれだけ使いこなせるかも非常に重要な技術になります。今回はブラックボックス,ホワイトボックスのテスト・ケース設計技法にてメソッド(関数)・レベルのテストを題材にしたので,単体テストの自動テスト・ツールとしてJUnit*1,カバレッジ計測ツールとしてdjUnit*2を使った際の進め方を説明します。 JUnitとは,Java用の単体テスト・フレームワークです。他にもC++にはcppUnit,.NETにはNUnitなど,プログラミング言語ごとに単体テスト・フレームワークが用意されています。これらを総称してxUnitと呼びます。xUnitは,テスト・コード記述のためのライブラリとテスト実行ツールをセットにしたフレームワークです。オープンソースで提供されているので,誰でも気軽に利用できます。 単体テスト・フレームワークなどを使って単体テストを自動化する機能の利用は,近年の短納期かつ仕様変更が多い開発では必須といえるでしょう。なぜなら,仕様変更が多いということはそれだけ回帰テストを何回も行わなければならないからであり,自動化は同じテストを繰り替えし実行するときに効果を発揮するからです。また,単体テストを自動化する際に,各自で独自のテスト・コードを書いてテストするのではなく,共通の単体テスト・フレームワークを使うことは,テスト・コードの作成が容易になるうえに,テスト・コードの可読性が高まるので他の人が作ったテスト・コードを流用しやすくなるなど,多くのメリットがあります。 まず,Eclipseに付属しているJUnitを使って,テスト・コードを作成してみましょう。Part3のブラックボックス技法でテスト設計した「メソッド仕様3」のテスト・ケースを使います。 ◆メソッド仕様3
引数1:商品群A(パソコン)購入額,型:整数
引数2:商品群B(プリンタ)購入額,型:整数 引数3:その他商品購入額,型:整数 戻り値:判定結果 仕様: ・量販店でのポイントカードへのボーナス・ポイント付与(ポイントを3倍にして付与)を判定する ・購入金額が10万円以上で,かつ商品群A(パソコン)と商品群B(プリンタ)の両方を3万円以上購入していると,ポイント付与OK(true)を返す テスト・コードの記載方法は図1のように行います。 このようにJUnitのテスト・コードは,実装用のプログラム・コードとは別に作っていくことができるため,実装用コードを汚すことなくテストを行うことができることもメリットだと言えます。 テスト・コードに書いてある内容を要約すると (1)テスト対象クラスを指定(2)テストの入力値を指定 (3)テスト対象の呼び出し (4)期待結果との比較 四つになります。これは,テスト・ケースの書き方そのものなので非常にわかりやすいはずです*3。 ![]() 関連キーワード |