提示された仕様とプログラム(バグを含む)から、自身の手でテストケースを設計し、バグを実際に見つけ、バグレポートまでを作成する実践的なシリーズ「テストでバグ発見!」。今回は、前回までの題材だった扇風機シミュレーターを使って、状態遷移図への機能追加を行う。その勘所は「混ぜるな、危険!」だ。
本シリーズは、筆者がバグを埋め込んだ仕様およびプログラムを提示しますので、読者の方々にテスト設計してバグを見つけてもらう趣向です。前回は、状態遷移モデルで作成した扇風機プログラムのテスト項目作成例を紹介しました。いかがでしたか。
今回の記事は、次の問題への準備編です。全体として、前回で使った扇風機シミュレーターへの機能追加(保守)がテーマになりますが、今回はまず前段階として、前回作成した状態遷移図を変更する(保守する)練習をします(今回は、出題編と解答編はセットです)。
ソフトウェア開発では、新規開発が第1バージョンで、第2バージョン以降の機能追加、性能向上が保守です。ソフトウェアが誕生してから終了するまでの「ライフサイクル」において、新規開発が占める開発時間やコストは全体の3分の1以下(実際は20〜30%でしょう)。3分の2以上(実際は70%超?)が保守工程ですので、保守は、ソフトウェア開発の5つのフェーズ(要求仕様、設計、実装、デバッグ・テスト、保守)の中で、最も重要な工程です。そのことを意識して、今回の課題に取り組んでいただければと思います。
扇風機とは、羽根が付いたモーターを高速に回転することで風を起こし、人間の体を冷やす機器です。エアコンと比べて省エネで、使い勝手もよく、今現在でも使われています。扇風機は、「電源ONボタンを押すとモーターが回転する」というように、入力と出力がシンプルで状態遷移モデルを取り扱うのに適しています。
今回の記事の狙いは、状態遷移図や状態遷移表を書く練習です。これを基に、次回は応用問題を出題します。
前々回の出題編、前回の解答編では、扇風機を題材にしました。そこで、基本となる扇風機の仕様を再掲して、どのような内容だったか振り返ります(一部、気になるところは修正していますので完全に同じものではありません)。「状態遷移図で仕様を描く」という視点で読んでいただければ幸いです。
このドキュメントは、扇風機シミュレーターの仕様を示したものである。このシミュレーターでは、使用者が指令した入力に従って、扇風機の動作を模擬する。
機能要求を下記に示す。
このシミュレーターのユースケース図を図1に示す。
使用者が、「運転ON/OFFボタン」を入力することで、運転ON/OFFを実現できる。
運転ONの場合、モーターを回転させる。
運転OFFの場合、モーターを停止させる。
使用者が「運転モード変更ボタン」を押すことで、モーターの回転数を「弱」「中」「強」の3段階に変更できる。
入出力ファイルから扇風機の動作を模擬できる。
図2に示す通り、「運転ON/OFFボタン」と、押すたびに、風速が弱、中、強の順番にサイクリックに変わる「運転モード変更ボタン」がある。なお、今回の問題の都合上、入出力は、ファイル操作から実行する。
図3に状態遷移図を示す。
表1に状態遷移表を示す。
Copyright © ITmedia, Inc. All Rights Reserved.