At Sun, 28 Jan 2001 12:24:55 +0900,
rubikitch wrote:
> そういえば、「CGIプログラム」や「ランダム要素が含まれる」
> 場合のテストってどうするのでしょう・・・
> cgi.rbの場合、offlineだと「入力」を聞いてきますし。

 典型的な入力内容を生成して与えるのでしょう。異常系や規定外の
入力にパニックせずにエラーとして対応できるかどうかをテスト。

 テストにおいては、極力ランダム値は用いない方がいいでしょうね。
Race condition が生じて結果の信頼性(再現性)が 100% でなくなり、
テストを通っても確実と言えなくなってしまう。

 ではランダム値の生成関数やシャッフル関数、あるいはハッシュ関数
などはどうするのかと言えば、ランダムシードを何通りかに固定して、
それぞれ分布や偏差値を計算してチェックするようにすればよさそうです。

 また、そもそも入力、処理、出力がうまく分離されていないと作為的な
データを与えるのが難しくなりますから、初めからテストしやすい設計に
するというのがポイントになってきます。そういう意味で、 XP は test
first の開発サイクルを提唱しているわけですね。

-- 
                     /
                    /__  __            Akinori.org / MUSHA.org
                   / )  )  ) )  /     FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ /  ( (__(  @ iDaemons.org / and.or.jp

"We're only at home when we're on the run, on the wing, on the fly"