Index: [Article Count Order] [Thread]

Date:  Sat, 10 Jun 2000 01:38:09 +0900
From:  Kaoru Hosokawa <khosokawa@....com>
Subject:  [XP-jp:00517] Re: XP Chapter 18 Testing Strategy  	の解説
To:  extremeprogramming-jp@....jp (extremeprogramming-jp ML)
Message-Id:  <B5674C3F.1CC8%khosokawa@....com>
In-Reply-To:  <20000606.131227.39034975.u90156@....jp>
Posted:  Sat, 10 Jun 2000 01:37:56 +0900
X-Mail-Count: 00517

ホソカワです。

上手さん、やまのさん、コメントありがとうございます。

on 2000/06/06 2:16 PM, Yuji Yamano at u90156@....jp wrote:

> Yutaka Kamite <y-kamite@....jp> writes:
> 
>>> すべてをテストすることはできません。かといって、何もテストしないことは
>>> 自殺行為です。では、何をテストするべきでしょう?壊れそうな箇所をテスト
>>> するべきです。
>>> どう見てもコードがシンプルなので壊れそうもない箇所はテストしません。
>> この break はどう解釈すればいいのでしょうか?
>> 1 プログラムがブレークする=止まる
>> かと思ったのですが、これでは数が少ないですね。で、
>> 2 求める動きをしない=壊れる
>> と考えたのですが、ホソカワさんの意見と合ってますでしょうか?
> 
> ホソカワさんじゃありませんが、僕も2だと思います。ただ、「壊れそう」より
> 「不具合が発生しそう」ぐらいのほうが日本語としては自然ですね。
> 

申し訳ありません。1と2の違いがよくわかりません。1は、「ここ、危ないから、
(強制終了しそうだから)テスト書こう。」という感じですか?2は、「スペックと
合っていない」ということですか?私は、1の解釈をしましたが…

>>> プログラマの書いたテストはつねに100%でパスしなくてはならない。もし、
>>> テストが落ちた場合、直ちに直さなくてはならない。それは、修正のための
>>> 作業量がわからないからである。一分でなおるもしれないし、数カ月かかる
>>> かもしれない。また、それ
> 
>>> は、プログラマがテストを書く事と実行する事を管理できるので、両方を
>>> 連動されることができるからである。
>> keep th tests completely in sync. ですので、
>> *テスト同士の同期を保つ(同士がぶつからない)* では?
>

「in sync」は、「同期」が正しいと思います?
 
> 同期をとることができるのは、テストとコードじゃないでしょうか?
> つまり、一度書いたテストは頻繁に実行され、かつエラーがあれば修正される
> ので、コードとテストは常に同期がとれているということだと思ったのですが。
> 

この箇所、読み直してみました。私の理解が間違っていました。


まず、テストがパスしない理由は、テストするメソッドが間違っていたのではなく、
(例えば、メソッドの機能を勘違いして書いた時など)テストそのものが間違ってい
たからです。ですから、テストをすぐに直さないとテストの意味がありません。テス
トを書くのもコードを書くのもプログラマ本人ですから、テストとコードの同期をと
ることが出来ます。以下のように直します。(訳してしまいました。)

プログラマの書いたテストは常に100%でパスしなくてはならない。もし、テストの方
が間違っていた場合、直ちに直さなくてはならない。テストが間違っていたら、テス
トの修正の作業量はわからない。一分で直るかもしれないし、数カ月かかるかもしれ
ない。プログラマ本人がテストを書く事と実行する事を行っているので、テストとコー
ドを完全に同期することができるのは彼等である。

> 
> -- やまの @ XP Installed を読むためには Smalltalk を勉強しないといけないのか…

そのようです…

-- 
Kaoru Hosokawa
khosokawa@....com