矢崎です。
"Shinichi I. OMURA"さん wrote:
> おおむらです。
>
> >・テストを最初に書くこと
> >・テストは自動化すること
> >・少しずつテスト、コード、テスト、コードを繰り返すこと。
> > これで、テストが通らなくても、どこにバグがあるか、
> > 容易に検出できる。
> >・常に、過去からのテストを再実行すること
> >
> >というような戦略、戦術が新しくて楽しいのだと思うので
> >すがどうでしょう?
>
> このあたりのことなのかもしれません。私の違和感は。
>
> 少しずつテストとコードを繰り返すというのの目的は、
> テストをすることにあるのではなくてコード=プログラミング
> を確実にすすめることにあるように思います。
>
> つまり、XPのUnit Testは、テストで強化されたプログラミングだと
> 見ることもできますよね。あくまでもプログラミングが主体です。
>
> そこが普通のテストと違うような気がします。
>
感じ方は人それぞれかもしれませんが、もし、おおむらさんが
プログラミング=コーディングという意味でおっしゃっているとすれば、
私としては、
「あくまでもプログラミング(コーディング)が主体」
という感じではないです。(ちがっていたらごめんなさい)
むしろ、プログラミングとはコーディングとテストとが一体化された
ものである、というように再定義したものと考えています。
#XPではさらに、デザインもプログラミングの範疇に含まれます。
(と私は理解しています)
そうしたやり方が、*普通の* のテストと違うといえば、まさしくそうだ
と思います。そしてXPのテストとはどういうものか、という説明は、まさ
しくその *普通の*テストと違うところにあるのではないかと考えていま
す。つまり、テストそのものにあるのではなく、テストをいつ、どういう
アプローチで行うか、、という戦略にです。。
もし、そのやり方が納得できない人については、
・XPのテストを説明するのをあきらめる。
・実際にXPの方法でテストしてもらって体で理解してもらう。
のどちらかを選択するしか道はないかもしれません。
#あ、あるいはおおむらさんが、XPを使って、それがすばらしいことを実証す
る、というのもありますね^^/
>
> なかば冗談ですが、こんなたとえはどうでしょうか。
>
> XPでは、ニンジンを目の前にぶらさげて馬を走らせます。
> ニンジンの位置はそのときそのとき微調整していくことが
> できます。
>
> コードを全部作ってからテストをするというやりかただと、
> 地図を見てだいたい見当をつけて馬を走らせて、
> このあたりかな、という段階でニンジンを目的地におき、
> あ、こんなに離れてたんだあ、となります。まあ、そんなに
> ひどくはないでしょうけど。
>
> XPでは、ニンジンがナビゲーションシステムになっている
> ところが大違いというわけです。
>
そうですね。そして、私達の目的が正しい目的地に行く(プログラミング)、
ということであれば、馬を走らせる(コーディング)、という活動と、ニン
ジンをどう使えばよいか(テスティング)、という活動には、主従は
ないと、考えています。どちらが欠けても、正しい目的地には行け
ませんから。。。。
--
矢崎博英 firo@....jp