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

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

» 2022年03月17日 10時00分 公開
※本記事はアフィリエイトプログラムによる収益を得ています

1.はじめに

 本シリーズは、筆者がバグを埋め込んだ仕様およびプログラムを提示しますので、読者の方々にテスト設計してバグを見つけてもらう趣向です。前回は、状態遷移モデルで作成した扇風機プログラムのテスト項目作成例を紹介しました。いかがでしたか。

混ぜるな危険 ※イラストはイメージです

 今回の記事は、次の問題への準備編です。全体として、前回で使った扇風機シミュレーターへの機能追加(保守)がテーマになりますが、今回はまず前段階として、前回作成した状態遷移図を変更する(保守する)練習をします(今回は、出題編と解答編はセットです)。

 ソフトウェア開発では、新規開発が第1バージョンで、第2バージョン以降の機能追加、性能向上が保守です。ソフトウェアが誕生してから終了するまでの「ライフサイクル」において、新規開発が占める開発時間やコストは全体の3分の1以下(実際は20〜30%でしょう)。3分の2以上(実際は70%超?)が保守工程ですので、保守は、ソフトウェア開発の5つのフェーズ(要求仕様、設計、実装、デバッグ・テスト、保守)の中で、最も重要な工程です。そのことを意識して、今回の課題に取り組んでいただければと思います。

⇒連載「山浦恒央の“くみこみ”な話」バックナンバー

2.扇風機と状態遷移モデル

 扇風機とは、羽根が付いたモーターを高速に回転することで風を起こし、人間の体を冷やす機器です。エアコンと比べて省エネで、使い勝手もよく、今現在でも使われています。扇風機は、「電源ONボタンを押すとモーターが回転する」というように、入力と出力がシンプルで状態遷移モデルを取り扱うのに適しています。

 今回の記事の狙いは、状態遷移図や状態遷移表を書く練習です。これを基に、次回は応用問題を出題します。

3.扇風機問題の振り返り

 前々回の出題編、前回の解答編では、扇風機を題材にしました。そこで、基本となる扇風機の仕様を再掲して、どのような内容だったか振り返ります(一部、気になるところは修正していますので完全に同じものではありません)。「状態遷移図で仕様を描く」という視点で読んでいただければ幸いです。

3.1 概要

 このドキュメントは、扇風機シミュレーターの仕様を示したものである。このシミュレーターでは、使用者が指令した入力に従って、扇風機の動作を模擬する。

3.2 機能要求

 機能要求を下記に示す。

3.2.1 ユースケース図

 このシミュレーターのユースケース図を図1に示す。

図1 図1 扇風機シミュレーターのユースケース図

3.2.2 運転ON/OFF機能

 使用者が、「運転ON/OFFボタン」を入力することで、運転ON/OFFを実現できる。

3.2.3 送風機能

 運転ONの場合、モーターを回転させる。

 運転OFFの場合、モーターを停止させる。

3.2.4 モード変更機能

 使用者が「運転モード変更ボタン」を押すことで、モーターの回転数を「弱」「中」「強」の3段階に変更できる。

3.2.5 扇風機模擬機能

 入出力ファイルから扇風機の動作を模擬できる。

3.3 ボタンのイメージ

 図2に示す通り、「運転ON/OFFボタン」と、押すたびに、風速が弱、中、強の順番にサイクリックに変わる「運転モード変更ボタン」がある。なお、今回の問題の都合上、入出力は、ファイル操作から実行する。

図2 図2 ボタンのイメージ

3.4 状態遷移図と状態遷移表

3.4.1 状態遷移図

 図3に状態遷移図を示す。

図3 図3 状態遷移図[クリックで拡大]

3.4.2 状態遷移表

 表1に状態遷移表を示す。

表1 表1 状態遷移表[クリックで拡大]
       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.