テストでバグ発見!(9)状態遷移図への機能追加の勘所は「混ぜるな、危険!」:山浦恒央の“くみこみ”な話(151)(4/4 ページ)
提示された仕様とプログラム(バグを含む)から、自身の手でテストケースを設計し、バグを実際に見つけ、バグレポートまでを作成する実践的なシリーズ「テストでバグ発見!」。今回は、前回までの題材だった扇風機シミュレーターを使って、状態遷移図への機能追加を行う。その勘所は「混ぜるな、危険!」だ。
5.3 タクシーの状態遷移図での機能追加の例
前回、前々回で、状態遷移モデルの例として「タクシーの状態遷移」を取り上げました。前回、前々回のモデルは、タクシーの走行の状態を表したものですが、ここに、「通常料金・深夜料金」の状態遷移を追加したのが以下のモデルです。
状態遷移図は、一種のすごろくであり、プログラムの制御部で、すごろくのコマの位置や外部から入力されるイベントを制御します。「タクシーの走行状態のモデル」と「通常料金・深夜料金のモデル」を独立させることにより、複雑さがそれほど増えていないことがお分かりいただけると思います。両方を混ぜてはいけません。混ぜると、急激に複雑化します。洗剤同様、プログラムの設計でも、「混ぜるな、危険!」です。
6.終わりに
今回は、扇風機シミュレーターの機能追加版の状態遷移図と状態遷移表を作成しました。状態遷移図の描き方はさまざまなので、自分なりの方法を考えてみてください。
状態遷移モデルを活用することで、入出力の関係が分かりやすくなり、プログラミングやテスト設計の助けになります。もし活用していない人がいれば、さまざまある選択肢の一つとして使用してはいかがでしょうか。次回は、今回の仕様を応用した問題を出題します。
山浦先生の書籍が発売中です!
前シリーズ「ソフトウェア技術者のためのバグ百科事典」を大幅に加筆、修正した山浦恒央先生の書籍「ソフトウェア技術者のためのバグ検出テキスト」が日科技連出版から好評発売中です。連載でも取り上げた、「要求仕様書のバグ」「実装抜けのバグ」「テスト業務のバグ」など、バグを36種類に分類して解説しています。囲碁や将棋であれば、「相掛かり」「矢倉」「四間飛車」「藤井システム」のような戦法を網羅した内容になっています。
前著「ソフトウェア技術者のためのバグ検出ドリル」(2019年11月刊行)も好評発売中です。実際にバグを含む要求仕様書、設計書、コーディング、デバッグ、保守を具体的に取り上げ、練習問題として31問を出題しました。同書は、囲碁や将棋における「次の一手」的な問題であり、ピンポイントの場面を取り上げ、実践力を鍛えることを目的としています。
両書とも興味のある方は、Amazon.comや書店でチェックしてください!
東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ≫連載「山浦恒央の“くみこみ”な話」バックナンバー
- テストでバグ発見!(8)状態遷移モデルで扇風機シミュレーターのバグを摘出せよ【解答編】
提示された仕様とプログラム(バグを含む)から、自身の手でテストケースを設計し、バグを実際に見つけ、バグレポートまでを作成する実践的なシリーズ「テストでバグ発見!」。今回は、扇風機シミュレーターをテーマとする問題の解答編。状態遷移モデルをベースにしたデバッグに取り組もう。 - テストでバグ発見!(7)状態遷移モデルで扇風機シミュレーターのバグを摘出せよ【出題編】
提示された仕様とプログラム(バグを含む)から、自身の手でテストケースを設計し、バグを実際に見つけ、バグレポートまでを作成する実践的なシリーズ「テストでバグ発見!」。今回は、扇風機シミュレーターをテーマとする問題の出題編。状態遷移モデルをベースにしたデバッグに取り組もう。 - テストでバグ発見!(6)電卓プログラムに潜むバグ【解答編】
提示された仕様とプログラム(バグを含む)から、自身の手でテストケースを設計し、バグを実際に見つけ、バグレポートまでを作成する実践的なシリーズ「テストでバグ発見!」。今回は、前回出題した電卓プログラム問題の解答編だ。演習問題としては大規模だが、正面からじっくり向き合い、適切にテスト設計すればバグを検出できるはず! - テストでバグ発見!(5)電卓プログラムに潜むバグ【出題編】
提示された仕様とプログラム(バグを含む)から、自身の手でテストケースを設計し、バグを実際に見つけ、バグレポートまでを作成する実践的なシリーズ「テストでバグ発見!」。今回は電卓プログラムをテーマとする問題の出題編。かなりのステップ数になる電卓プログラムに潜むバグを見つけ出そう。 - テストでバグ発見!(4)懐かしい「解の公式」のプログラムからバグを探し出せ
提示された仕様とプログラム(バグを含む)から、自身の手でテストケースを設計し、バグを実際に見つけ、バグレポートまでを作成する実践的なシリーズ「テストでバグ発見!」。第4回は、多くの読者が中学校の数学で学んであろう、2次方程式の解を求める「解の公式」のプログラムに潜むバグを見つけ出そう。 - テストでバグ発見!(3)単位取得判定プログラムに潜むファイル入力のバグ
提示された仕様とプログラム(バグを含む)から、自身の手でテストケースを設計し、バグを実際に見つけ、バグレポートまでを作成する実践的なシリーズ「テストでバグ発見!」。第3回は、大学の単位取得を判定するプログラムから、ファイル入力に潜むバグを見つけ出しましょう。