テスト・ファースト

「エクストリームプログラミング(通称・XP)」というプログラミングスタイルがあり、その特徴のひとつに「テスト・ファースト」という考え方がある。これは、先にテストを作っておいて、そのテストをクリアすることを目指してプログラムを書くというやり方だそうだ。

例えば円周率を計算するプログラムを書くとしたら「小数点第2位までは3.14になる」という結果を先に決めておく。3.14じゃないとエラーになるテストを書いて、次に円周の長さと半径から円周率を求める実際のプログラムを書いていくのだ。

このやり方の利点は、到達点がはっきりしていること、最初にプログラムの全貌が明らかになること、みんなが嫌いでめんどくさがるテストを先に済ませてしまえることなどが挙げられる。

欠点としては、テストパターンが出尽くすまで(こうなったときはどうする、ああなったときはどうする)、一向にプログラムに取り掛かれない点が挙げられる。てっとり早くプログラムを書けば終わるような部分も、テストを先に作る。イライラする。だが、どうせ後でテストをやらなくちゃいけないのだから、……いやしかし、それにしても。

というわけで、野村は今日はずっとテスト仕様書を書いてテストパターンを列挙する作業をしていた。あぁ。プログラムを書いてしまいたい。いや、まて、しばしの辛抱だ。どうせ後で、いやというほど書かねばならない。