- 209 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 01:28:40.84 ID:APSLa6hA.net]
- 今はタイポの話をしたが、型チェックに関して言えば、
型チェックはテストでは検出できない。 なぜならば、これは関数の呼び出し方の間違いだからだ。 テストとは通常、関数が与えられた引数で正しい答えを返すことをテストする。 与える引数は正しいことが前提となっている。 例えばある関数の引数の数が変わったとしよう。テストも引数の数を変えるだろう。 しかし、実際のコードの呼び出し部分、ここの引数を変えるのを忘れたら、 テストは通るのに実際のコードでエラーが発生することになる。 もちろん呼び出し側のテストがしっかり書かれていればそちらでエラーが出るだろう。 つまり、Aという関数の仕様を変えた時、その関数を使用している場所全て、 関数B、C、D、E・・・でエラーが発生する。さあ大変なデバッグ作業の始まりだ! もし、これらの関数でテストに見逃しがあったりしたならば、バグになるのは明白だ。 これは適当な範囲でのテストを書いてないからという程度ですむ話じゃない。 完璧なテストを書かないかぎり、呼び出し方が間違っていないかどうかはわからない。 完璧なテストを書けばいい?もし世の中に完璧なテストが有るならば、バグは一切無いだろうなw
|

|