
【初心者向け】不具合報告書の書き方
テストエンジニアは業務内で不具合を見つけた際に不具合報告書を起票することになります。
不具合報告書とは、発生した不具合の原因と対策について記載した文書です。
社内の関係者への共有はもちろん、取引先に提出することもあるため、正確かつわかりやすく記載する必要があります。
1. 不具合報告書の目的

不具合報告書は不具合の発生内容を開発チームに正しく理解してもらうことにあります。
また、その不具合の起きた要因や再現法を明記することで、重要度が変わります。
内容によっては緊急対応になるケースもあります。
2. 不具合報告書に記載すべき項目について

不具合報告書に記載すべき内容は以下となります。
1.タイトル
2.発生した事象
3.再現手順
4.結果・期待結果
5.テスト環境
6.エビデンス
7.備考
次項にて解説していきます。
2-1. タイトル
タイトルで不具合のポイントがズレていると、適切に不具合修正してもらえない場合があります。
不具合とわかる、的確なタイトルをつけましょう。
タイトルの基本構文
バリエーションはありますが、基本的には下記の構文でタイトルを構成します。
最大50文字程度が目安ですが、短く記載できるならできるだけ短く記載します。
「[When/Where(状態)]→[What(条件)]→[How(手順)]→[be(期待値に反する結果)]」
・When/Where(状態):「~のとき」「〜で」「〜の場合」
不具合の再現に必要な検査機材などの状態を書きます。
・What(条件):「なにを~」
不具合の再現に必要な設定などの条件を記載します。
・How(手順):「~すると」
不具合再現の決め手となる操作を記載します。
・be(期待値に反する結果):「~になる」
実際に発生した、期待結果とは異なる現象を記載します。
例)
NG:ボタンをクリックするとフリーズする
OK:「ポイントを使う」チェックボックスがTrueのとき、注文ボタンをクリックすると注文画面がフリーズする
2-2. 発生した事象
ここでは不具合の内容が「ざっくりどういった内容なのか」を記載します。
詳細な手順などは後述で別途記載するので、この「概要」では比較的簡易に記載して、まずはどういった不具合内容なのかを読み手に知ってもらう事が目的とします。
2-3. 再現手順
チケットを読んだ人が迷わずに現象を再現させるための手順を記載します。
誰でも再現できるように、読む人の前提知識や背景知識がまったくない前提で記載しましょう。
・必要な条件や手順を省略せずに書く
必要な条件や手順を省略せず、1ステップごとに記載します。
目安として、前提知識不要かつチケットを読む人(イメージとして新人)が、記載されている前提と手順を読んだことだけで理解・再現できるくらいに細かく記載します。
省略するか詳細に書くか迷ったならば、詳細に書くほうに倒すほうが良い場合が多いです。
例)
NG:ボタンをクリックする
OK:注文画面で注文確定ボタンをクリックする
・手順の文章の中に動作は一つ
手順の一文に、動作を一つのみ記載します。
何個も動作があると、再現するひとが手順を抜いてしまう可能性があります。
例)
NG:配送先に東京都を選択し、ポイントを使うを選択し、ボタンをクリックする
OK:① 配送先コンボボックスで「東京都」を選択する
② ポイントを使うコンボボックスをEnableにする
③ 注文ボタンをクリックする
・数値を用いるなどして具体的に記載する
「いつ(タイミング)」「何を」「どうする」を具体的に書きます。数値が記載されているとより良いです。
例)数値を用いた具体的な手順
※操作にタイミングがある場合。タイミングが不要な場合はNGに書いてある記載で構わないです
NG:ブラウザバックしたあと、少したった後にボタンをクリックする
OK:ブラウザバックしたら、約5秒後にボタンをクリックする
例)具体的なタイミングを記載した手順
※操作にタイミングがある場合。タイミングが不要な場合はNGに書いてある記載で構わないです
NG:確認ダイアログでOKボタンをクリックする
OK:確認ダイアログ内に「Are you OK?」が表示されたら、OKボタンをクリックする
・実施対象を明記する
検査機材やPCなど、手順が複数のデバイスやアプリケーションにまたがっているときは、手順の中に検査機材やPCを明記しましょう。
いろんなデバイスやアプリケーションがあると、どの検査機材のUIやアプリケーションで手順を実行するべきなのか混乱するためです。
また画面名称やUI名称も記載してあるとより良いです。
例)PCとスマホの両方で操作が必要な場合
NG:① OKボタンをクリックする
② 表示されたメッセージを確認する
OK:① スマホに表示された確認ダイアログでOKボタンをクリックする
② PCのWebブラウザに表示されたメッセージを確認する
2-4. 結果・実際の結果
冗長のため、結果や期待結果には手順を繰り返し書かないようにします。
また、結果と手順をできるだけ対比させて記載しましょう (対比すると、何が悪くて何が正しいのか理解しやすいです)。
ただし対比不要な場合もあります。無理に対比しなくて良いときは、対比で記載しなくて問題ありません。
例)
結果 : 注文画面がフリーズし、注文開始しない
期待結果 : 注文画面がフリーズせず、注文開始する
2-5. テスト環境
検査機材の情報を細かく記載します。
ソフトウェアエンジニアが解析に用いる重要な情報ですので、記載できることは記載しましょう。
・検査対象ソフトウェアのバージョン・リビジョン・ビルド番号
特定のバージョン・リビジョン・ビルド番号でのみ発生する現象の特定に有意義な情報になります。
・評価機材
機材固有の問題や機材の設定による不具合があるときの分析に使用することがあります。
2-6. エビデンス
現象発生時の証拠画像
現象発生時のスクリーンショット・画像・動画を撮影できる場合、撮影したそのファイルをチケットに添付して参照案内すると良いです。
文字だけでは、不具合のイメージが伝わらない場合がありますが、画像などあると現象が伝わりやすくなります。
画像を不具合の発生箇所を赤い丸などで囲い、不具合発生箇所を判別しやすくするとなお良いです。
例外発生などでエラーコードが画面に表示されている場合、その番号とエラーメッセージが映った写真も添付すると良いです。
解析に重要な手がかりとなるエラーコードの情報が正確に設計に伝わるためです。
2-7. 備考
手順や結果に書ききれない補足情報はすべて結果補足に記載します。
・根拠となる仕様書の記載
・同条件である検査機材・PCでの結果
・他のPCや機体での結果
・他の状態や条件、設定で確認した結果
・過去の類似機種の動作
・不具合チケットを起票した背景
3. 不具合報告書起票時の注意点

1.不具合報告書1件に複数の不具合を記入しない
開発者が複数の不具合が記載されていることに気づかず、不具合の修正漏れが発生する可能性があります。
2.重複した不具合を報告しない
既に自分以外の誰かがその不具合を報告済の可能性があります。不具合報告書の重複発行は、作業の煩雑化や遅れにつながるため、不具合報告書を作成する前に既に同一の不具合が報告されていないかを確認してから起票するようにしましょう。
3.不具合報告書を作成する際は不具合の原因を特定しない
不具合原因は開発者が特定する作業です。テスト実行担当者が憶測で原因を記載することは開発者の誤った判断につながる可能性があるため、不具合の発生条件、再現手順などの事実に基づく内容を報告するようにしましょう。
4. 最後に
初めて不具合報告書を起票する際は戸惑うことがあるかもしれません。
何度も起票してコツを掴んでいきましょう。
最後まで、読んで頂きありがとうございました。