Index: [Article Count Order] [Thread]

Date:  Tue, 13 Jun 2000 11:15:51 +0900
From:  Yutaka Kamite <y-kamite@....jp>
Subject:  [XP-jp:00531] Re: XP Chapter 18 Testing Strategy   の解説
To:  extremeprogramming-jp@....jp (extremeprogramming-jp ML)
Message-Id:  <3945999F2C6.C518Y-KAMITE@....jp>
In-Reply-To:  <20000613.102823.45248756.u90156@....jp>
References:  <3942106110E.8DF0Y-KAMITE@....jp> <20000613.102823.45248756.u90156@....jp>
Posted:  Tue, 13 Jun 2000 11:17:03 +0900
X-Mail-Count: 00531

上手です。

On Tue, 13 Jun 2000 10:34:14 +0900
Yuji Yamano <u90156@....jp> wrote:

> 1は、”プログラム実行がエラーで止まること”です。
> 2は、止まらないが、誤った処理をする場合です。
> > 
> > ということで、1 のようです。
> 
> うーん、ちょっと納得できません。

私も半信反疑です。(笑い)

> 上手さんの解釈だと、「プログラム実行がエラーで止まる可能性があるメソッド
> についてのみ、単体テスト用のコードを書けばよい」という事になりませんか?

この疑問は私の疑問そのものであるのですが・・・・

現在のお奨め、としてテスト方針が P268(の上から13行目)に書いてあります。
・振る舞いを持つオブジェクトは全てテストする
・アクセサしか持たないレコードオブジェクトはテストしない
・私の経験でオブジェクトがbreakしないところ(when the things couldn't
possibly break) がわかる

この後を見ていると、以下のような手法を前提にしているように感じます。

1 処理については論理的にエラーが出る筈がないような構造にする
  ・エラーが出ることが無いループ構造にするとか
2 オブジェクトの出口で返り値に厳密なチェックをかける
  ・インスペクタ、デバッガで調べたり
3 ペアプログラミングで上記を徹底する

著者の頭の中は、常にSmalltalk + VisualWorks(統合開発環境)が前提になって
いると思うので、このあたりに我々のわからない言語的な特性・ノウハウ(バグ
が出ない組み方)とか開発手法があるのかもしれません。
Smalltalk はまだ勉強を始めたばかりなので、この辺りはよくわかりません。

ということで、結論がでませんので、”保留”に戻しましょう。

(では)

> 
> Smalltalk のコードを書いた経験がないので、XP Installed でいわれている 
> break がどういうものなのか感覚的にはよくわかりません。(論理的にはわかりますが)
> しかし、自分が C++ でやるとすると、複雑で不具合が発生する可能性がある
> メソッドについては単体テスト用のコードを書くでしょう。
> 
> EC 本では Smalltalk 固有の話は抑制されているので、break の解釈が XP Installed
> と異ってもよいのではないかと思います。
> 
> どうでしょうか?
> 
> -- やまの
>