太田です。所属が変わりましたのに挨拶をせずに申し訳ございませんでした。
平鍋さん
> なるほど.文化ですか.
> ところで,ユニットテストは Smalltalk が発祥ですが,最近
> Smalltalk をちょっと勉強したら,こんな風にも思えて来ました.
>
> Smalltalk は静的型がない.
> よって,コンパイラ言語のようにコンパイル時にエラーを検出することができな
い.
> よって,ランタイムテストが,コンパイラ言語以上に必要
> よって,どうせならエクストリームにテストをする.
>
> 静的な型付けによるコンパイル時の型チェックは,完璧なテストで
> はない.オブジェクトの静的な型への適合,という一次近似を使っ
> てテストしている.より現実に近いテストは,オブジェクトの動的
> な振舞への適合を調べる必要があり,ランタイムにしか行うことが
> できない.
>
> Smalltalk から xUnit が出たのは,ある意味当然.コンパイル言
> 語から見ると「身から出たサビ」,いい言い方だと,「瓢箪から
> 駒」ということでしょう.(なんか怒られそう)
私はSmalltalkとかPerlのコミュニティーは早く動かすことが第一でテストなどし
ないものだという変な先入観を持っていましたが、調べてみると平鍋さんが仰るよう
な感じでまったく逆でした。明示的なコンパイルというのがないが故に、逆にコンパ
イルさえ通ればよいでは済まされなくなるために、Design by Contractのようなテス
ト手法を自ずから生み出していったと。
プログラマの成長のためには、あまり強力な静的検証やコンパイラチェックは良く
ないのかもしれませんね。むしろ、xUnitのようなTest Firstのリズムを作れる軽量
なテストツールがプログラマの要求に合致していたともいえます。
#そういえば、大学のとき研究室で買った某社製の重量級テストツールも結局ほとん
ど使われなかったような。
We need testing, We like patterns, so We write
http://c2.com/cgi-bin/wiki?TestingPatterns
Kenichro Oota oota_ken@....com