テストでバグ発見!(10)機能追加した扇風機シミュレーターのバグを検出せよ【出題編】山浦恒央の“くみこみ”な話(152)(4/4 ページ)

» 2022年04月14日 10時00分 公開
前のページへ 1|2|3|4       
※本記事はアフィリエイトプログラムによる収益を得ています

3.6 データ設計

 データ定義を表5に示す。

No. 名称 データ型 変数名 入力(input.csv)/出力(output.csv)/定数値 備考
1 運転ON/OFFボタンステータス int opeBtnStatus 入力/出力 押下する際は1、それ以外は0として入力する
2 モード変更ボタンステータス int modeBtnStatus 入力/出力 押下する際は1、それ以外は0として入力する
3 首振り変更ボタンステータス int swingBtnStatus 入力/出力 押下する際は1、それ以外は0として入力する
4 動作管理ステータス int stsManager 出力 扇風機シミュレーターの動作モードを管理する変数
0:アイドルモード
1:運転モード
2:減速モード
5 運転管理ステータス int opeStsManger 出力 運転ON/OFFを管理するステータス
OFF:0
ON:1
6 運転モード管理ステータス int modeStsManger 出力 運転モード(弱・中・強)を管理する変数
弱:0
中:1
強:2
7 モーター回転数 int currentSpeed 出力 現在のモーターの回転数
8 弱速目標回転数 int LOW_TGT_SPEED 定数値(300) 弱速モード時の目標回転数
9 中速目標回転数 int MID_TGT_SPEED 定数値(500) 中速モード時の目標回転数
10 強速目標回転数 int HIGH_TGT_SPEED 定数値(800) 強速モード時の目標回転数
11 加減速設定値 int accValue 定数値(50) 1ループあたりの回転数の増加値/減少値
12 首振り管理ステータス int swingStsManager 出力 首振りON/OFFを管理するステータス
首振りOFF:0
首振りON:1
表5 データ定義

3.6 処理フロー

 下記に、大まかな処理フローを示す(図5)。

図5 図5 大まかな処理フロー
運転ON/OFFボタンステータス(0:それ以外、1:押下) モード変更ボタンステータス(0:それ以外、1:押下) 首振り変更ボタンステータス(0:それ以外、1:押下) 備考
(実際にはこの行は作らない)
0 0 0 運転OFF
1 0 0 運転ONボタンを押下し、運転モードへ遷移
0 1 0 運転ON状態で、モード変更ボタンを押下し、中速回転モードに遷移する。また、モーター回転数=50となる
0 0 0 運転ON状態で、また、モーター回転数=100となる
0 1 0 運転ON状態で、モード変更ボタン押下し、高速回転モードへ遷移し、モーター回転数=150となる
表6 出力データ一覧

3.7 制限事項

  • プログラムはブラックボックスとして問題に取り組むこと
  • この問題では、プログラムへの入力はファイルから実行する。また、入力するファイルには、不正な値を入力しないものとする
  • 入力ファイル名は、「input.csv」とする
  • 出力ファイル名は、「output.csv」とする

4.まとめ

 今回は、扇風機シミュレーターの機能追加版(保守版)問題を出題しました。いかがでしたでしょうか。長々と書いていますが、やってみれば、簡単にバグは見つかると思います。次回の解答編までにじっくりと取り組んでいただければと思います。

山浦先生の書籍が発売中です!

 前シリーズ「ソフトウェア技術者のためのバグ百科事典」を大幅に加筆、修正した山浦恒央先生の書籍「ソフトウェア技術者のためのバグ検出テキスト」が日科技連出版から好評発売中です。連載でも取り上げた、「要求仕様書のバグ」「実装抜けのバグ」「テスト業務のバグ」など、バグを36種類に分類して解説しています。囲碁や将棋であれば、「相掛かり」「矢倉」「四間飛車」「藤井システム」のような戦法を網羅した内容になっています。

 前著「ソフトウェア技術者のためのバグ検出ドリル」(2019年11月刊行)も好評発売中です。実際にバグを含む要求仕様書、設計書、コーディング、デバッグ、保守を具体的に取り上げ、練習問題として31問を出題しました。同書は、囲碁や将棋における「次の一手」的な問題であり、ピンポイントの場面を取り上げ、実践力を鍛えることを目的としています。

 両書とも興味のある方は、Amazon.comや書店でチェックしてください!

【 筆者紹介 】
山浦 恒央(やまうら つねお)

東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)


1977年、日立ソフトウェアエンジニアリングに入社、2006年より、東海大学情報理工学部ソフトウェア開発工学科助教授、2007年より、同大学大学院組込み技術研究科准教授、2016年より非常勤講師。

主な著書・訳書は、「Advances in Computers」 (Academic Press社、共著)、「ピープルウエア 第2版」「ソフトウェアテスト技法」「実践的プログラムテスト入門」「デスマーチ 第2版」「ソフトウエア開発プロフェッショナル」(以上、日経BP社、共訳)、「ソフトウエア開発 55の真実と10のウソ」「初めて学ぶソフトウエアメトリクス」(以上、日経BP社、翻訳)。


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

Copyright © ITmedia, Inc. All Rights Reserved.