連載
» 2021年08月17日 10時00分 公開

テストでバグ発見!(2)自動販売機シミュレーターのバグを見つけろ!山浦恒央の“くみこみ”な話(144)(2/4 ページ)

[山浦恒央 東海大学 大学院 組込み技術研究科 非常勤講師(工学博士),MONOist]

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.