ソフトウェア技術者のためのバグ百科事典(21)【総まとめ】バグの特定手順を解説山浦恒央の“くみこみ”な話(142)(1/3 ページ)

ソフトウェア技術者に向けて、バグに関する基礎知識をまとめていく新シリーズ「バグ百科事典」。第21回は、シリーズの総まとめとして、バグの検出から修正までの「バグ特定手順」の一連の流れを解説します。

» 2021年06月21日 10時00分 公開
※本記事はアフィリエイトプログラムによる収益を得ています

1.はじめに

 バグ百科事典では、筆者が気になったバグを紹介し、読者の皆さまに「バグの早期発見」と「バグの未然防止」に役立てていただくものです。

 今回は、「バグ百科事典」シリーズの最終回として、今まで紹介してきたバグを振り返りつつ、一連のバグの検出手順を解説します。なお、次回からは、前シリーズの「バグ検出ドリル」と今回で最終回となる「バグ百科事典」を発展させた、新シリーズをお届けします。

⇒連載「山浦恒央の“くみこみ”な話」バックナンバー

2.分かってしまえば単純なのに……

探索 ※写真はイメージです

 バグは、成果物のさまざまな場所に潜んでいますが、見つけることは簡単ではありません。プログラムが意図しない動作をした場合、一見すると非常に不可解な事象に見えますが、原因が分かると、非常に単純です。その場合、担当者は、「何でこんなミスをしてしまったのだろう」とガックリ来ることも少なくありません。

 今回は、シリーズ総まとめとして、バグの検出から修正までの「バグ特定手順」の一連の流れを解説します。

3.バグの特定手順

 バグの特定手順は以下の通りです。

  1. 事象を把握する
  2. 再現性を見つける
  3. バグの原因を絞り込む
  4. 不良の箇所を見つける
  5. 対策を立案する
  6. バグを修正し確認する
  7. 類似バグをチェックする
  8. バグがどうしても見つからない場合

 ここからは各手順の詳細を解説していきます。

3.1 事象を把握する

 バグ特定の第一歩は、事象を正確に把握することです。例えば、「○○を入力すると、プログラムが停止する」でしょう。入力値、実行結果、ログ、コンソールなどから事象を把握します。

 成果物の中にはさまざまなバグが潜んでいます。例えば、テストのバグ(第129回第139回に掲載)や、ログのバグ(第131回掲載)、文書作成のバグ(第127回掲載)、勘違いのバグ(第137回掲載)などです(図1)。

図1 図1 バグの例題(クリックで拡大)

 図1は、バグの説明用の例題です。下記にこの例題の問題点を示します。

  • 入力値に「10と5」を入れるはずが、「9 5」を入力しており、入力値にバグがある
  • 加算した結果は「15」、減算した結果は「5」になるはずが、間違った記述をしており、文書にバグがある
  • 減算している結果は、「出力値2」を確認すべきはずが、出力値3をログしている

 上記のような簡単な例題では起きないでしょうが、さまざまな情報に惑わされずに「入力値が想定通りか」「出力値を確認する場所は正しいか」「そもそものドキュメントが正しいか」を確認します。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.