濱井です。
2003/02/27 20:57:06 +0900にShinさんが送られた
メールに関する返信です。
>まず、誤解なきようにおことわりしておきますが、
>わたくしめはテストファーストがすきですし、
>その楽しさ、生産性の高さ、よく知っております。
>
>でも、ときどき思うのです。
>テストでいいのかな? と。
>
>つまり、ダイクストラが言っているように、テストは
>バグの存在を示すことはできても、プログラムが正しい
>ことは証明できない。ではありませんか。
[XP-jp:03991]でも書いていますが、テストファーストって、ある種の実行
可能仕様の記述だと思います。
作成しようとするプログラムの仕様を作成前に記述することは、その
プログラムの仕様を自分自身や他人に明確にすることになります。この効果は、
自然言語による仕様書の記述にもありますが、自然言語による仕様書では記述
の際と読んで解釈する際に自然言語の持つ曖昧さによって、曖昧さや間違いが
入る余地が多分にあります。プログラミング言語では、曖昧さや間違いが入る
余地は少なくなります。
テストファーストが効果的なのは、テストにより正しさを保証しようとする
だけでなく、プログラムを作成する際、その仕様が明確になっているためだ
と思います。