επιστημη氏の白箱試験にて簡単なプログラムを例に
ホワイトボックステストでは数学的帰納法の観点で境界値をピックアップしてテストケースを削減することを取り上げています。
しかし、数学の場合の数学的帰納法と違って、コンピュータにおける数学的帰納法には落とし穴があるのです。
// 引数を2倍して返す
int hoge(int x) {
return x * 2;
}
一見すると、0で正常に動き、引数がnのとき、n+1でも成り立ちそうです。
負の値のときも動きそうですから、-1,0,1でテストすれば大丈夫そうに思えますね。
しかし、0から順に初めて、1,2,3と進めていくと、ある値を超えたときにオーバーフローして値がおかしくなってしまいます。
「でも、オーバーフローするまでの範囲では大丈夫なんだろう?テストの区間をうまく区切ればいいだけさ」
では、どうやってうまく区切れていて、見落としがないことを証明できるのでしょうか?
この困難さこそが、テストケースをうまく作ることの難しさなのです。
投稿日時 : 2007年11月30日 23:46