ソフトウェア技術者に向けて、バグに関する基礎知識をまとめていく新シリーズ「バグ百科事典」。第21回は、シリーズの総まとめとして、バグの検出から修正までの「バグ特定手順」の一連の流れを解説します。
バグ百科事典では、筆者が気になったバグを紹介し、読者の皆さまに「バグの早期発見」と「バグの未然防止」に役立てていただくものです。
今回は、「バグ百科事典」シリーズの最終回として、今まで紹介してきたバグを振り返りつつ、一連のバグの検出手順を解説します。なお、次回からは、前シリーズの「バグ検出ドリル」と今回で最終回となる「バグ百科事典」を発展させた、新シリーズをお届けします。
バグは、成果物のさまざまな場所に潜んでいますが、見つけることは簡単ではありません。プログラムが意図しない動作をした場合、一見すると非常に不可解な事象に見えますが、原因が分かると、非常に単純です。その場合、担当者は、「何でこんなミスをしてしまったのだろう」とガックリ来ることも少なくありません。
今回は、シリーズ総まとめとして、バグの検出から修正までの「バグ特定手順」の一連の流れを解説します。
バグの特定手順は以下の通りです。
- 事象を把握する
- 再現性を見つける
- バグの原因を絞り込む
- 不良の箇所を見つける
- 対策を立案する
- バグを修正し確認する
- 類似バグをチェックする
- バグがどうしても見つからない場合
ここからは各手順の詳細を解説していきます。
バグ特定の第一歩は、事象を正確に把握することです。例えば、「○○を入力すると、プログラムが停止する」でしょう。入力値、実行結果、ログ、コンソールなどから事象を把握します。
成果物の中にはさまざまなバグが潜んでいます。例えば、テストのバグ(第129回、第139回に掲載)や、ログのバグ(第131回掲載)、文書作成のバグ(第127回掲載)、勘違いのバグ(第137回掲載)などです(図1)。
図1は、バグの説明用の例題です。下記にこの例題の問題点を示します。
上記のような簡単な例題では起きないでしょうが、さまざまな情報に惑わされずに「入力値が想定通りか」「出力値を確認する場所は正しいか」「そもそものドキュメントが正しいか」を確認します。
Copyright © ITmedia, Inc. All Rights Reserved.