データの設定ミスによるバグが起こる兆候は、明らかにおかしいデータが表示される場合です。以下に具体例を示します。
5.2.1 常識外の値が現れる
例えば、年齢が30歳のところに1000と表示するなどの常識外の値を表示する場合です。
5.2.2 データ化けする
筆者が言語対応用の外部入力ファイルを作成していた時のことです。本来、UTF-8で作成しなければならないところ、Shift-Jis形式で入力してしまいました。結果として、画面の文字が全て化けしてしまい、慌てました。このように文字化けを起こしている場合は、データのバグの可能性が高いと思います。
5.2.3 テスト済みのプログラムが正しく動かない
動作実績のあるプログラムの場合、設定値の入力ミスから動かない可能性が高いように思います。この場合は、データのバグの可能性が高いでしょう。
下記にデータのバグをまとめます。
組み込みソフトウェアの分野でも、間違ったデータを入れてしまい、不可解な現象に遭遇する場合も少なくありません。筆者は、ソケット通信のプログラムを作成していて、お互いのIPアドレスの設定を間違え、通信エラーが発生したことがあります。くだらないバグですが、実際に起こってみると、「プログラムのバグかもしれない」と焦るものです。
上記に挙げた現象が発生した場合、「データの設定ミスかもしれない」と思っていただけると幸いです。ひとたび、「プログラムのロジックのバグかもしれない」と思い込むと、正しいロジックをデバッグすることになり、多大な時間とエネルギーのロスになります。本コラムが、少しでも、デバッグの助けになり、効率よくバグを検出できることを願って止みません。
2019年11月27日に、山浦恒央先生が執筆した書籍「ソフトウェア技術者のためのバグ検出ドリル」が日科技連出版から発売されました。本連載「山浦恒央の“くみこみ”な話」とTechFactoryの連載「組み込みエンジニアの現場力養成演習ドリル」をベースに、大幅加筆、改訂した内容になっています。
内容は、「デバッグの詰将棋」で、要求仕様定義、設計、コーディング、テスト、保守の5フェーズでの「バグを埋め込んだ仕様記述やソースコード」を読んで、バグをピンポイントで見つける問題集になっています。全部で31問あり、難易度は初級から上級まで、いろいろです。興味のある方は、以下のアマゾンのWebサイトや書店などでチェックしてください!
東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.