山根です。
On Fri, 2 Aug 2002 12:16:52 +0900
"NAKAMURA, Hiroshi" <nakahiro@....jp> wrote:
> なひです。
<...snip...>
> テスト不要の件、同感です。元の説明が悪いですね。前回の例は、
>
> * あるプログラマーが、
> * テストファースト時に、
> * Foo#rateFor100の仕様として、i == 0のときに
> Exceptionを返すよ、という手抜き仕様を考えた
>
> 場合の例でした。
そうですね。
このようなケースであれば、テストを書いたほうがよいでしょうね。
> 事前条件としてi != 0という仕様の場合、テストすべきは
> Foo#rateFor100ではなく、これを呼び出している例えば
> Bar#createReportなどで、「Foo#rateFor100を呼び出すときに
> 絶対に0を渡さないこと」をテストする必要がありますね。
と言われると、やはり「必要に応じて」と答えてしまいます。f(^_^;
#なひさんのおっしゃる通り、人それぞれですね。
コードを書いた(書く)人とペアが、必要と感じれば、
品質に自信をもてるまでテストすればいいでしょうね。
ただしこの場合は、テストファーストで、この試験は出来ないはずなので、
「自信がない時」のテストラストと言うことになるとは思います。
必要に応じて、テストラストも行うべきでしょうね。
例えば、実装してて「やべぇ、なんか複雑になってきた...」
とかの場合ですかね?
って、言ってると完全にプログラマ任せになってしまうので、
初級者ペアの場合は、もしかすると一時的に進捗と
品質が下がるかもしれませんね。
監査機構は必要そうなので、トラッカさんよろしく!!
って感じです。
「ねぇねぇ、A君。次のタスクは僕が後ろについてもいいかい?」
とか言って、後ろから進め方見てみて必要に応じて、
アドバイスして挙げれれば、最高かな?
> プログラマがテストファースト時にテスターの帽子を
> 被って仕様を決めていく際には、鼻を利かせて「i == 0の時に
> どうするか」に思いをめぐらせないといけない。
> 結果的に、
> 呼び出し側の債務にして事前条件として書くのでもいいし、
> Exceptionが返る仕様にしてテストを書くのでもいいし、
> double / intのときでもInfinityが返る仕様にしてテストを書くのでもいい。
これが理想ですね。
まさにそう思います。
XPの場合、みんなが、テスターであり、デザイナーであり、
プログラマーなんですよね。
やっぱ、XPは難しいなぁ。
> できればカバレジツール、コード品質検査ツールなどのツールが
> 助けてくれるといいんですが、サポートしてくれないので、
> 従来どおり人に頼るしかない、と。
そうなんですよね。
ツールでは、論理的正当性はある程度保証できても、
機能的正当性に関しては数量化できないから、
品質って測るの難しいんですよね。
#受入れ試験の合格数くらいかな?測れそうなのは?
MDAだと、この当たりはクリアされるんでしょうか?
未だに、MDAが夢語ってるようにしか思えない、
山根の最後っ屁でした。
奥村さん、なひさん、石井さんお付き合い頂きありがとうございました。
#と、勝手にクロージングして良いのかな?
山根 英次(Eiji Yamane)
mailto:e-yamane@....com
http://www.ne.jp/asahi/e/yamane/software/