
【ソフトウェアテスト】不具合報告のインシデントレポートについて
開発プロジェクトで発生した問題はインシデントとして、管理・分析・対応が必要です。
プロジェクト全体を通しての問題となるとかなり範囲は広く、人的トラブルやステークホルダー間での問題など、開発しているプロダクト以外の問題も含んでしまうので、本記事では主にプロダクトのテストに関して検出された動作の不具合(バグ)に焦点を絞って記載します。
プロダクトのテストに際して検出した不具合は、報告・対応したあとは蓄積データとして、引き続きプロジェクトで参照・活用されます。
実際の開発現場によっては、早期レビューでのやりとりに関するものや、開発とテスターが口頭で連携できるような状況で報告即時対応できる程度の不具合対応など、状況により必ずしも定められたドキュメントの形式で報告されるものとは限りませんが、可能な限り検出対応した不具合は履歴を残しておくことで、プロダクトの品質向上を目指すことができます。
ほとんどの場合は不具合管理に別途外部のbug tracking system(BTS)を使用しています。
BTSはインシデントレポート1件をチケットという1単位で扱います。
チケットの形式や内容が必ずしも同一の形式に沿っているというものではありませんが、不具合の報告管理をするチケットの内容は、管理運用の観点から記載が必要となる項目はある程度決まっています。
余談ですが、BTSは不具合報告のみならず、チケット駆動開発 (TiDD) を実施するプロジェクトでは開発作業自体の管理進行目的で使用される場合もあります。
1. 不具合報告時の記載内容
組織やプロジェクト、使用するBTSにより不具合報告時の記載形式はさまざまであり、必ずしもこの記載でなければいけないといった明確な定めはありませんが、ソフトウェアテストの国際規格であるiso/iec/ieee 29119には、インシデントレポートのテンプレートとして記載項目が定義されており、iso/iec/ieee 29119規格に準拠した不具合報告ドキュメントを作成する場合は、以下の各項目を内容に含んでいる必要があります。
1-1. インシデントレポートにおけるiso/iec/ieee 29119規格遵守の必須項目
タイミング情報:いつインシデントが観測されたかを記述する
作成者:誰がインシデントを確認したかを記述する
状況:どこでインシデントを確認したかを記述する
インシデントの説明:気づいた点やエビデンスを記述する
作成者による重要度の評価:インシデントがユーザーおよびビジネスに及ぼすインパクトの程度を記述する
作成者による優先度の評価:どのくらいの緊急度で修正が必要かを記述する
リスク:新規に検出したリスクか、既存のリスク対応によるエンバグかを記述する
インシデントのステータス:インシデントの現在の状態を記述する
上記項目の内容については、以下の資料より一部抜粋編集して記載しています。
※参照
ISO/IEC/IEEE 29119 ソフトウェアテスト規格の教科書
著:Stuart Reid
1.タイミング情報
対象インシデントがいつ検出されたかの日時を明示することで、以降の経過日数や開発プロダクトに対する対応期限などの管理を可能にします。
2.作成者
報告したチケットの担当者を記載します。
iso/iec/ieee 29119規格遵守の必須項目では作成者としていますが、より拡張的な対応として、作成者の他にインシデントの現時点担当者も記載することで、そのインシデントは現在誰が対応管理しているのかを確認できるため、未対応なのか、対応中なのか、既に対応完了して履歴として残している段階なのかなどを把握することができます。
3.状況
チケットを何のテストで検出したかにもよりますが、テスト対象の機能に関する不具合なのか、仕様書などのテスト対象関連アイテム内の不具合に関係するものかを記載します。
修正・確認の際に必要な再現性を確保するため、テスト環境と構成の情報を記載します。
また、後述のインシデントの説明項目に含まれる場合がありますが、テスト手順とテストケース詳細をこの状況項目に含むこともあります。
4.インシデントの説明
不具合自体の説明を記載します。
状況の項目にテスト手順を記載する場合があると記載しましたが、特定手順でのみ再現するインシデント自体を説明する上では、手順を併せて参照する必要があるため、手順もインシデント説明の内容として当該項目に含めます。
また、インシデントには取得可能なものは必ずエビデンス(証跡)を添付します。
ソフトウェアテスト動作に対する不具合のエビデンスであれば、動作させている画面のスクリーンショットあるいは動画を添付します。
画面として出力されない部分での不具合については、エビデンスとして動作ログなどを添付する場合もあります。
5.作成者による重要度の評価
不具合を検出報告したチケット作成者が、検出した内容に応じて重要度を設定します。
あくまでテスト側が検出した不具合内容に応じて判定するので、その後、実装担当者が修正対応する際に解析した結果として、重要度が更新変更される場合もありますが、報告時はテスト側の視点でどれほど影響があるかとして判定します。
重要度もプロジェクトにより独自にレベルが設定されている場合がありますが、大抵の場合は以下の3段階程度で評価されます。
・クリティカル
サービス使用不可能になる程度の重大な不具合であり、即時対応必須の緊急性があるレベル。
確定的なアプリケーションのクラッシュや、ユーザーとプロジェクトに金銭的不利益が発生するものなどが該当する。
・メジャー
クリティカルよりも程度は低いものの、リリース前には修正されていなければならないと想定されるレベル。
ユーザー不満によりサービス品質評価のダウンが想定されるもの。
おおよその不具合はこのレベルに分類される場合が多い。
・マイナー
メジャーよりもさらに程度が低く、ユーザーへの影響がほとんどないと思われるレベル。
仕様の取り違えにはつながらない程度の誤字脱字や、機能の可用性には関わらない程度の表示崩れ、発生方法はあるが再現性が低かったり、故意に再現させたとしても機能を改ざん悪用したりはできないようなものなど、例え修正されずにリリースとなったとしてもサービス・ユーザー双方に影響がない想定のため、修正対応見送り
2. bug tracking system(BTS)
bug tracking system(BTS)については、現在さまざまなサービスが展開されており、どのサービスを導入しているかはプロジェクトにより違います。
公開の形式もさまざまですが、主なbug tracking system(BTS)のサービスは以下のものがあります。
・オープンソース系
・Bugzilla
・Redmine
・Trac
・プロプライエタリ系
・Jira
・Backlog
・CAT
・クラウド系
・Atlassian Jira Software
・Backlog
・BugHerd
シンプルにインシデントのチケット管理に特化したものもあれば、プロジェクト内のチケット全体での内容・ステータス等を統計分析してグラフにしたり、ガントチャート形式で管理したりすることで、プロジェクトのインシデント管理や不具合分析に活用できる機能があるなど、サービスにより機能もさまざまあるため、プロジェクトの規模や運営方針に合わせたサービスの選定が必要になります。
また、インシデントレポート作成としてだけではなく、前述したチケット駆動開発 (TiDD) のために使用されるサービスもあります。