連載
テストでバグ発見!(2)自動販売機シミュレーターのバグを見つけろ!:山浦恒央の“くみこみ”な話(144)(2/4 ページ)
提示された仕様とプログラム(バグを含む)から、自身の手でテストケースを設計し、バグを実際に見つけ、バグレポートまでを作成する実践的なシリーズ「テストでバグ発見!」。第2回は、自動販売機シミュレーターのプログラムからバグを見つけ出しましょう。
※本記事はアフィリエイトプログラムによる収益を得ています
3.2 詳細
3.2.1 起動・終了時の処理
プログラム起動時に、自動販売機シミュレーターのGUIを表示する。また、「×」ボタンを選択すると、ウィンドウを閉じてプログラムを終了する。なお、ウィンドウの最大化はできず、ウィンドウのサイズを変更できない(最小化は可能)。
3.2.2 金額投入
金額投入エリアにある6つあるボタンを選択して金額を投入する。投入する際の設定値は後述する表1を参照し、投入した金額の総額は、総額エリアに表示する。なお、総額+投入金額>上限金額となる場合は、金額投入できない。
3.2.3 商品購入
商品エリアにある8つのボタンから商品を選択し、購入する。商品購入に関連するデータは、後述する表2を参照すること。
ただし、商品を購入できる条件は、以下の条件時とする。
- (1)総額≧商品価格かつ在庫>0の場合
- 総額=総額−商品価格
- 「〇を購入しました」をメッセージエリアに表示する(〇は選択した商品による)
- (2)それ以外の場合
- 「金額か在庫が足りません」をメッセージエリアに表示する
3.2.4 お釣り
お釣りボタンを選択すると総額を0とする。
3.2.5 メッセージ
リスト1の状態に従って、メッセージエリアにメッセージを表示する。
操作 | メッセージ | 備考 |
---|---|---|
金額投入時 (上限金額以内) |
○円を投入しました | 「○」はボタンの金額による |
金額投入時 (上限金額超過) |
上限金額より大きい金額を投入できません | − |
商品選択ボタン (商品購入時) |
○を購入しました | 「○」は選択した商品による |
商品選択ボタン (商品購入不可) |
金額か在庫が足りません | − |
お釣りボタン | ○円を排出しました | 「○」はお釣りの金額による |
リスト1 メッセージ一覧 |
3.3 データ設計
3.3.1 投入金額関連データ
表1に、投入金額エリアに関連するデータを示す。
No. | 名称 | 金額 | 種別 |
---|---|---|---|
1 | 5000円投入 | 5000 | ボタン |
2 | 1000円投入 | 1000 | ボタン |
3 | 500円投入 | 500 | ボタン |
4 | 100円投入 | 100 | ボタン |
5 | 50円投入 | 50 | ボタン |
6 | 10円投入 | 10 | ボタン |
7 | 最大投入金額 | 10000 | 設定値 |
表1 投入金額データ |
3.3.2 商品関連データ
表2に、商品に関連するデータを示す。
No. | 商品名 | 商品価格 | 在庫 | 種別 |
---|---|---|---|---|
1 | コーラ | 100 | 5 | ボタン |
2 | オレンジ | 140 | 4 | ボタン |
3 | サイダー | 120 | 12 | ボタン |
4 | スポドリ | 80 | 8 | ボタン |
5 | コーヒー | 100 | 1 | ボタン |
6 | お茶 | 140 | 9 | ボタン |
7 | 紅茶 | 120 | 5 | ボタン |
8 | ビール | 300 | 3 | ボタン |
表2 商品データ |
3.4 問題の前提
下記の前提にして問題に取り組むこと。
3.4.1 商品データの前提
本来では、商品データを自由に設定できるようにすべきであるが、問題の都合上、表1、表2のようなデータは、プログラム上にハードコーディングした。よって、それ以外のデータが入ることは考慮しない。
3.4.2 GUIのテスト
今回は、GUI部のテスト項目は考えず、アプリケーション部のみのテストに着目すること。
Copyright © ITmedia, Inc. All Rights Reserved.