マイヤーズの三角形問題
この問題は最近買ったテスト本に載っていたのだが、結構本質を突いていて面白いと思った。テスト技術者としての経験や能力を測るための、ひとつの指標。
あるプログラムのテストを実施する。
- このプログラムは、カードから3つの整数を読む。
- この3つの値は、それぞれ三角形の3辺の長さを表すものとする。
- プログラムは、三角形が不等辺三角形、二等辺三角形、正三角形のうちどれであるかを決めるメッセージを印字する。
これらの条件から、プログラムのテストケースを考えよ。
自分が考えたテストケースは、次のようなものだ。
- ケース:入力時引数の個数を2個以下にしてプログラムを実行する。
- 想定される結果:対応するエラーメッセージが出力される。
- ケース:入力時引数の個数を4個以上にしてプログラムを実行する。
- 想定される結果:4個目以降の引数が切り捨てられる。
- ケース:入力時の引数に、整数でない値を与えてプログラムを実行する。
- 想定される結果:対応するエラーメッセージが出力される。
- ケース:入力時の引数に、3つの整数を与える。ただし、1つは0以下の整数を与える。
- 想定される結果:対応するエラーメッセージが出力される。
- ケース:入力時の引数に、3つの正整数を与える。ただし、3数を小さい順に a, b, c とするとき、 a + b <= c であるとする。
- 想定される結果:対応するエラーメッセージが出力される。
- ケース:入力時の引数に、3つの正整数を与える。ただし、値は3つとも異なるとする。また、3数を小さい順に a, b, c とするとき、 a + b > c であるとする。
- 想定される結果:不等辺三角形と出力される。
- ケース:入力時の引数に、3つの正整数を与える。ただし、値は2つが同じであるとする。また、3数を小さい順に a, b, c とするとき、 a + b > c であるとする。
- 想定される結果:二等辺三角形と出力される。
- ケース:入力時の引数に、3つの正整数を与える。ただし、値は3つとも同じであるとする。
- 想定される結果:正三角形と出力される。