連載
» 2022年02月17日 10時00分 公開

テストでバグ発見!(8)状態遷移モデルで扇風機シミュレーターのバグを摘出せよ【解答編】山浦恒央の“くみこみ”な話(150)(1/4 ページ)

提示された仕様とプログラム(バグを含む)から、自身の手でテストケースを設計し、バグを実際に見つけ、バグレポートまでを作成する実践的なシリーズ「テストでバグ発見!」。今回は、扇風機シミュレーターをテーマとする問題の解答編。状態遷移モデルをベースにしたデバッグに取り組もう。

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

1.はじめに

 このシリーズでは、筆者がバグを埋め込んだ仕様とプログラムを提示し、読者がテスト設計してバグを見つけるものです。前回の出題編では、状態遷移モデルで作成した扇風機プログラムを題材としました。いかがでしたでしょうか。

 今回は解答編になりますので、前回の出題編を読んでない方は一度ご覧になってから戻ってきていただければ幸いです。

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

 以下に、あらためて問題文を再度掲載しておきます。

2.【問題】:扇風機シミュレーター 制限時間:3時間(再掲)

 下記に提示した仕様を実装したC言語のプログラムがある(ただし、バグがある)。仕様を基にテストケースを設計し、プログラムを実行してバグを検出せよ。また、バグを検出した場合は、バグレポートをまとめること。

提示物:問題のプログラム(ElectricFan.c、ElectricFan.h):Visual Studio 2019コンソールアプリケーション、mingw(gcc)で動作確認済み(Visual Studioで実施する場合は、「SDLチェックをOFF」にしてビルドすること)

成果物:記述済みのテスト項目、記述済みのバグレポート、気付き事項リスト(もしあれば)

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

3.問題の意図

 今回の問題では、「状態遷移図・状態遷移表を確認し、テスト設計ができるか」「時系列のテスト項目を作成できるか」を意図しています。

 今回は、状態遷移図・状態遷移表をベースとした扇風機を問題として提示していますので、それを見ながらテスト設計をする必要があります(見なくてもできますが、状態遷移図なしでは、システマチックにテストするのはかなり大変です)。

 また、プログラムを意図した動作とするには、時系列の入力データを作成する必要があります。この問題では、ファイル入力(input.csv)から時系列のテスト項目を作成し、プログラムを動作する必要があります。入力は0と1で行うため、意味を理解するのに時間を要した人もいるでしょう。

 それでは、次ページからお待ちかねの解答です。

       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.