単体テストって何だろう?


皆さんがプログラムの開発を行うとき、どういう作業を行なうでしょうか。ソースコードの作成、デバッグ、以上。――という人が、案外圧倒的かも知れませんね。デバッグしてちゃんと動いたら、それで完成だ、という感じ。

けれど、実際問題として「デバッグはしたんだけど、実際に使ってみると思ってもみなかったところで問題が発生した」なんてことはよくある話です。こうした問題をあらかじめ回避するために、最近は「テスト」が重要視されるようになってきつつあります。

テストというのは、文字通り「できあがったプログラムがちゃんと動くかどうか試してみること」です。「それぐらいちゃんとやっているさ」と思った人。このテストというのは、プログラムを作った本人が自分でやっては意味がないのですよ。

プログラマというのは実に不思議な生き物です。プログラマは、自分の作ったプログラムを動かすとき「問題が起こりそうな操作を無意識のうちに回避してしまう」という本能があります。テストは、そうした個人の意識が入り込まないよう、機械的に行なえないといけません。

そこで使われるようになったのが、プログラムでテストを行なうための環境であるテスト・フレームワークと呼ばれるものです。フレームワークとしてテストのための環境を用意し、プログラム的にテストを実行するようにしてしまうわけです。

Eclipseには、標準で「JUnit」と呼ばれるテスト・フレームワークが組み込まれています。これは「単体テスト」と呼ばれるテストを行なうためのフレームワークです。テストにはさまざまな種類がありますが、単体テストは、作成したメソッドごとに、さまざまな形で呼び出して動作が正しく行なわれるかをチェックするもので、テストのもっとも基本といってよいでしょう。

このJUnitは、オープンソースのソフトウェアであり、オンラインで誰でも入手できます。Eclipse 3.2では標準で3.8.1/4.0という2つのバージョンが内蔵されていますが、Eclipse以外の環境で使いたい場合には、ここからソフトウェアをダウンロードして利用できます。

JUnitは、junit.orgのサイトで配布されている。ここからダウンロードすれば、Eclipse以外でも自由に使うことができる。


Eclipseでは、改めてソフトをインストールなどする必要はありません。標準の状態で、すぐにJUnitによるテストを利用することができます。――では、EclipseのJUnitを使って、「テストというのがどういうものか」を体験してみましょう。なお、今回はJUnit 4というものを使います。これは、Java5以降でないとうまく機能しないので、あらかじめJDK 5.0以降をインストールしてEclipseから利用できるように設定しておいてください。