November 07, 2006

JUnitと単体テスト技法―JUnit4対応


JUnitと単体テスト技法―JUnit4対応

キーワード:
 福島竜、JUnit、単体テスト、Java、テストファースト、ブラックボックステスト
JUnitの使い方本。この本で111冊目。

JUnitを簡単に説明すると、Javaのテストコードを書くためのオープンソースのフレームワーク。主に単体テスト実施時に利用される。単体テストを行うときに、メソッドが正しく動作しているかどうかをいちいち手動でやっていると時間がかかり、しかも漏れがある可能性があるので、JUnitのようなツールを使って簡単にかつ短時間にテストができますよという優れもの。

この本は以下のような構成になっている。
  1. テストファースト―見えてくる問題
  2. テストの基礎
  3. 単体テストの技法
  4. JUnitの概要
  5. JUnitの詳細
  6. EclipseとJUnitによる単体テスト
  7. テストケースを考える
  8. Webアプリケーションのテスト
はじめの章では、テスト対象のコードを書く前にテストコードを先に書くというテストファーストを体験しましょうという内容。そのため、JUnitの概要説明がないままいきなりテストコードの書き方から入る。

1章でテストファーストの重要性を理解してから、2章ではVモデルに沿ってテストの種類と目的などが解説されている。

3章で単体テストの方法について解説されている。ホワイトボックス、ブラックボックステストの違いや、同値クラステスト、境界値テスト、デシジョンテーブルテストなどの基本的なことなど。

4章でようやくJUnitの概要や基本的な使い方について説明されている。

5章でJUnitを利用するためのテストコードの書き方やAssertクラスの使い方が解説されている。

6章はEclipseのプラグインとしてJUnitの使い方が説明されている。

7章は、商品の代金を計算するプログラムを例題に挙げ、境界値を意識しながらテストケースを作成し、その後テストメソッドをコーディングするという内容。

8章は、WebアプリケーションをテストするためにCactusというフレームワークを利用するというもの。

以上のようにJUnitについて網羅的に書かれている。表紙の印象やページの構成から、なんだか教科書的な感じがする。

JUnitはテストファーストが重要なようだ。テスト対象コードよりも先にテストコードを作成するというのは難しいなと思う。実際にテスト対象コードを書いてからテストコードを書いたほうが効率がいいんじゃないかと思ってしまうが・・・。しかし、テストファーストはプログラムの仕様を明確にできることや、テストプログラムを書き忘れたりすることがないという利点があるようだ。

JUnitはテストファーストを実践するためにあるようなフレームワークなので、いかにもXP的なものだなと思っていたら、JUnitの開発にXPの提唱者のケント・ベックが関わっていたようだ。納得。

この本で特に役に立ったのは、3章、5章か。特にテストケースを考えるときに、入力値チェックの時に使用する境界値をどのように捉えるかが勉強になった。また、テストコードの書き方で、assert系メソッドの使用で気をつけなければならないことなどが示されていて参考になった。

また、付録には簡単な用語集やJUnit、Eclipseのインストール方法が載っている。丁寧な印象を受ける。

ただ、7章でテストケースがずらっと網羅されているけど、こららを全てじっくり見るには結構時間がかかると思う。そのため、眺めるだけでは頭に入ってこないと思う。テストケースの書き方は、実際に何かプログラムを基にして考えていくしか身につかない気がした。

JUnitをしっかり使いこなせるようになると、単体テストがかなり楽になると思われる。

読むべき人:
  • JUnitを使いこなしたい人
  • 単体テストを楽に行いたい人
  • XPのテストファーストをやりたい人
Amazon.co.jpで『JUnit』の関連の他の書籍を見る



トラックバックURL

コメントする

名前:
URL:
  情報を記憶: 評価:  顔   星