ソフトウェア技術者のためのバグ百科事典(3)意外に厄介なデータ入力ミスのバグ山浦恒央の“くみこみ”な話(124)(4/4 ページ)

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

5.2 兆候

 データの設定ミスによるバグが起こる兆候は、明らかにおかしいデータが表示される場合です。以下に具体例を示します。

  1. 常識外の値が現れる
  2. データ化けする
  3. テスト済みのプログラムが正しく動かない

5.2.1 常識外の値が現れる

 例えば、年齢が30歳のところに1000と表示するなどの常識外の値を表示する場合です。

5.2.2 データ化けする

 筆者が言語対応用の外部入力ファイルを作成していた時のことです。本来、UTF-8で作成しなければならないところ、Shift-Jis形式で入力してしまいました。結果として、画面の文字が全て化けしてしまい、慌てました。このように文字化けを起こしている場合は、データのバグの可能性が高いと思います。

5.2.3 テスト済みのプログラムが正しく動かない

 動作実績のあるプログラムの場合、設定値の入力ミスから動かない可能性が高いように思います。この場合は、データのバグの可能性が高いでしょう。

6.まとめ

 下記にデータのバグをまとめます。

  • データのバグとは、GUIからの入力、ハードコード、外部入力ファイルなどから設定値を間違えたときに発生する
  • データのバグにより、異常値を表示し、誤った結果を出力する
  • データのバグを起こさないためには、作業を可能な限り自動化し、複数人でチェックする。また、変更前と変更後を見比べ、正しく修正したか確認すること
  • データのバグの兆候は、常識外の値が表示し、動作実績のあるプログラムが正しく動作しない場合に多く発生する

7.終わりに

 組み込みソフトウェアの分野でも、間違ったデータを入れてしまい、不可解な現象に遭遇する場合も少なくありません。筆者は、ソケット通信のプログラムを作成していて、お互いのIPアドレスの設定を間違え、通信エラーが発生したことがあります。くだらないバグですが、実際に起こってみると、「プログラムのバグかもしれない」と焦るものです。

 上記に挙げた現象が発生した場合、「データの設定ミスかもしれない」と思っていただけると幸いです。ひとたび、「プログラムのロジックのバグかもしれない」と思い込むと、正しいロジックをデバッグすることになり、多大な時間とエネルギーのロスになります。本コラムが、少しでも、デバッグの助けになり、効率よくバグを検出できることを願って止みません。

山浦先生執筆の書籍「ソフトウェア技術者のためのバグ検出ドリル」が発売!

 2019年11月27日に、山浦恒央先生が執筆した書籍「ソフトウェア技術者のためのバグ検出ドリル」が日科技連出版から発売されました。本連載「山浦恒央の“くみこみ”な話」とTechFactoryの連載「組み込みエンジニアの現場力養成演習ドリル」をベースに、大幅加筆、改訂した内容になっています。

 内容は、「デバッグの詰将棋」で、要求仕様定義、設計、コーディング、テスト、保守の5フェーズでの「バグを埋め込んだ仕様記述やソースコード」を読んで、バグをピンポイントで見つける問題集になっています。全部で31問あり、難易度は初級から上級まで、いろいろです。興味のある方は、以下のアマゾンのWebサイトや書店などでチェックしてください!

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

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


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.