この問題のバグは、「成人となるはずの年齢(例えば60)を入力しても、成人とならない」がバグです。なお、このプログラムでは、21〜58までを成人になるように記述しています。
今回は、仕様通りの動作を正しくテストできるかを意図しています。成人の幅を21〜58としていますので、最初からバグに気づいた人もいるかもしれません。下記に解説を記載します。
テスト項目の作成例と出力結果を表3に示します。
No. | 年齢 | 期待値 | 出力結果 | 良否 |
---|---|---|---|---|
1 | -1 | エラー | エラー | 良 |
2 | 0 | 未成人 | 未成人 | 良 |
3 | 20 | 未成人 | 未成人 | 良 |
4 | 21 | 成人 | 成人 | 良 |
5 | 200 | 成人 | エラー | 否 |
6 | 201 | エラー | エラー | 良 |
表3 テスト項目作成例 |
表3に示す通り、この問題のバグは、No.5で200を入力した際に出力結果の良否が「否」となることです。
今回は、1次元の範囲をテストすれば検出できる問題です。最も一般的なやり方が、同値分割・境界値分析で仕様の両端をテストするものです。その結果、リスト2のようなテスト項目となります。境界の2点だけでは不安の人は、「-1」「0」「1」「19」「20」「21」「199」「200」「201」と3点ずつテストしても構いません。
また、人によっては、代表値、例えば、「10」「60」などもテストする場合もありますし、最大・最小の「3000」「-3000」のような値を試してもよいでしょう。
バグレポートの作成例を図5に示します。
今回の例では、例えば、以下が考えられます。
新シリーズとして、動かしてバグを見つける実践問題集「テストでバグ発見!」をスタートしました。バグは見つけられましたか。今回はチュートリアルですから、まずは、やり方をつかんでいただければOKです。
次回から、もう少し難しい問題にする予定です。本コラムに取り組み、バグ検出の練習と、事象を正しく説明する力を養っていただければ幸いです。
Copyright © ITmedia, Inc. All Rights Reserved.