検索
連載

テストでバグ発見!(9)状態遷移図への機能追加の勘所は「混ぜるな、危険!」山浦恒央の“くみこみ”な話(151)(2/4 ページ)

提示された仕様とプログラム(バグを含む)から、自身の手でテストケースを設計し、バグを実際に見つけ、バグレポートまでを作成する実践的なシリーズ「テストでバグ発見!」。今回は、前回までの題材だった扇風機シミュレーターを使って、状態遷移図への機能追加を行う。その勘所は「混ぜるな、危険!」だ。

Share
Tweet
LINE
Hatena
※本記事はアフィリエイトプログラムによる収益を得ています

3.5 処理の詳細

 処理の詳細を以下に示す。

3.5.1 初期処理

 プログラム開始時に以下の初期化処理を実行する。

  • 動作管理ステータスを「アイドルモード」に設定する
  • 運転管理ステータスを「OFF」に設定する
  • 運転モードステータスを「弱」に設定する
  • モーター回転数を0に設定する

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の場合、下記を実行する:
    動作管理ステータスを「アイドルモード」に設定する
  • それ以外の場合は、以下を実行する:
    モーター回転数=モーター回転数−加減速設定値

4.【問題】扇風機への「首振りモード」の追加 制限時間:1時間

 扇風機シミュレーターの第2バージョンとして、「首振りモード」を追加することになった。3項で示した仕様と下記に示す問題文を参考に、状態遷移図、状態遷移表に機能追加せよ。

4.1 扇風機シミュレーターの追加仕様

 扇風機シミュレーターの機能追加として、通常の運転動作に加えて、「首振り」動作を追加することとなった。

4.2 扇風機シミュレーターのボタンイメージ

 首振りON/OFFボタンを追加する(図4)。

図4
図4 ボタンイメージ

4.3 詳細仕様

 下記に詳細な仕様を示す。

4.3.1 首振り処理

 下記に従って、首振り処理を実行する。

  • 首振りボタンをONする場合、首振り動作モードをONとする
  • 首振りボタンをOFFする場合、首振りモードをOFFとする

4.4 制限事項

 この問題では、首振りモードのON/OFFの切り替えに限定し、具体的な処理は含めないものとする。



 それでは、実際に状態遷移図と状態遷移表を書いてみましょう。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る