Index: [Article Count Order] [Thread]

Date:  Fri, 28 Feb 2003 20:01:53 +0900
From:  Shin <omura@....jp>
Subject:  [XP-jp:04144] Re: 幻覚剤としてのテストファースト
To:  extremeprogramming-jp@....jp
Message-Id:  <62C2DF18CCF691omura@....jp>
In-Reply-To:  <iss.19e4.3e5f079e.65e94.1@....com>
References:  <iss.19e4.3e5f079e.65e94.1@....com>
X-Mail-Count: 04144

おおむらです

>濱井です。

>[XP-jp:03991]でも書いていますが、テストファーストって、ある種の実行
>可能仕様の記述だと思います。

私も去りし2000年のある日の[XP-jp:00976]でXPのテストが「実行可能な仕様書」
になっていると言っています。

その部分を引用すれば

---------- XP-jp:03991 の引用 ここから
XPでは、テストが、ある意味、「実行可能な仕様書」になってますよね。
まあ、テストなので本質的に不完全だから「仕様書」にはなりえないわけですけど、
あるクラスの使い方を知りたかったら、そのテストコードを読めば分るという
ような点で、仕様書のようなものと思います。
----------ここまで

>作成しようとするプログラムの仕様を作成前に記述することは、その
>プログラムの仕様を自分自身や他人に明確にすることになります。この効果は、
>自然言語による仕様書の記述にもありますが、自然言語による仕様書では記述
>の際と読んで解釈する際に自然言語の持つ曖昧さによって、曖昧さや間違いが
>入る余地が多分にあります。プログラミング言語では、曖昧さや間違いが入る
>余地は少なくなります。

私は昔、形式的仕様からプログラムを自動合成するという仕事に
かかわっていたので、ついつい仕様というと形式的なものを思い起こして
しまいます。それで、テストのことを不完全だと言ってしまいますけど、
やはり、テストは特定の値についてしか記述しないので、仕様には
なりませんよね。それが実行可能であることを保証するための
トレードオフになってるわけで、そのトレードオフは今のXPのバランスの
よさを見ると、正しいんだろうなとは思いますが、それでも他の道は
ないのかなと思うわけです。

話がそれてしまいました。

>テストファーストが効果的なのは、テストにより正しさを保証しようとする
>だけでなく、プログラムを作成する際、その仕様が明確になっているためだ
>と思います。

そのとおりだと思います。