連載
テストでバグ発見!(10)機能追加した扇風機シミュレーターのバグを検出せよ【出題編】:山浦恒央の“くみこみ”な話(152)(3/4 ページ)
提示された仕様とプログラム(バグを含む)から、自身の手でテストケースを設計し、バグを実際に見つけ、バグレポートまでを作成する実践的なシリーズ「テストでバグ発見!」。今回は、これまで題材にしてきた扇風機シミュレーターに対して保守開発を本格的に適用した問題の出題編となる。
※本記事はアフィリエイトプログラムによる収益を得ています
3.5 処理の詳細
処理の詳細を以下に示す。
3.5.1 初期処理
プログラム開始時に以下の初期化処理を実行する。
- 動作管理ステータスを「アイドルモード」に設定する
- 運転管理ステータスを「OFF」に設定する
- 運転モードステータスを「弱」に設定する
- モーター回転数を0に設定する
- 首振り管理ステータスを「OFF」に設定する
3.5.2 アイドルモード
アイドルモードで「運転ON/OFFボタン」を押下すると、下記を実行する。
- 動作管理ステータスを「運転モード」に設定する。
- 運転ステータスを「ON」に設定する。
- 運転モードステータスを「弱」に設定する。
3.5.3 運転モード
運転モードでは、モーターを回転し、風を送風する。モードは、「弱」「中」「強」の3つ存在し、モードごとの目標回転数までモーターを加減速する。また、このモードで「運転ON/OFFボタン」を押下すると、動作管理ステータスを「減速モード」に遷移し、運転管理ステータスを「OFF」に設定する。
3.5.3.1 弱速モード
以下に従って、モーターを弱速(低速)回転で運転する。
- 「モード変更ボタン」を押下する場合:
運転モードステータスを「中」に設定する - モーター回転数<弱速目標回転数:
モーター回転数=モーター回転数+加減速設定値 - モーター回転数>弱速目標回転数:
モーター回転数=モーター回転数−加減速設定値
3.5.3.2 中速モード
以下に従って、モーターを中速回転で運転する。
- 「モード変更ボタン」を押下する場合:
運転モードステータスを「強」に設定する - モーター回転数<中速目標回転数:
モーター回転数=モーター回転数+加減速設定値
3.5.3.3 強速モード
以下に従って、モーターを強速回転で運転する。
- 「モード変更ボタン」を押下する場合:
運転モードステータスを「弱」に設定する - モーター回転数<強速目標回転数:
モーター回転数=モーター回転数+加減速設定値
3.5.3.4 減速モード
このモードでは、モーターが停止するまで、モーターを減速する。
- モーター回転数<=0の場合、下記を実行する:
動作管理ステータスを「アイドルモード」に設定する - それ以外の場合は、以下を実行する:
モーター回転数=モーター回転数−加減速設定値
3.5.4 首振りモード
このモードでは、首振りモードによって首振り角度を変更する。なお、本問題では、あくまでもモード変更のみに限定して考えること。
- 首振り管理ステータスがOFFの状態で「首振りモード変更ボタン」を押下:
首振り管理ステータスを「首振りONモード」に遷移する。 - 首振り管理ステータスがONの状態で「首振りモード変更ボタン」を押下:
首振り管理ステータスを「首振りOFFモード」に遷移する。
3.5.5 入力機能
このアプリケーションでは、物理的な機器(スイッチ、モータなど)を備えていないため、ファイル入出力(入力ファイル名:input.csv、出力ファイル名:output.csv)で動作を代用する。下記に詳細を示す。
3.5.5.1 入力処理
プログラム実行時、ファイルから表3に示す項目を入力する。
No. | 入力項目 |
---|---|
1 | 運転ON/OFFボタンステータス(0:それ以外、1:押下) |
2 | モード変更ボタンステータス(0:それ以外、1:押下) |
3 | 首振り変更ボタンステータス(0:それ以外、1:押下) |
表3 入力データ一覧 |
3.5.5.2 出力処理
プログラムの実行後、表4に示すデータを出力する。
No. | 出力項目 |
---|---|
1 | 項番(ログ記録回数) |
2 | 運転ON/OFFボタンステータス(0:それ以外、1:押下) |
3 | モード変更ボタンステータス(0:それ以外、1:押下) |
4 | 首振り変更ボタンステータス(0:それ以外、1:押下) |
5 | 動作管理ステータス(0:アイドルモード、1:運転モード、2:減速モード) |
6 | 運転管理ステータス(0:OFF、1:ON) |
7 | 運転モード管理ステータス(0:弱、1:中、2:強) |
8 | モーター回転数 |
9 | 首振り管理ステータス(0:OFF、1:ON) |
表4 出力データ一覧 |
Copyright © ITmedia, Inc. All Rights Reserved.