不具合チケットテンプレート:チケットには何を書く?
ソフトウェアテストで不具合を検出したら、不具合チケットを起票します。 不具合チケットの役割は、不具合修正を効率的に進めるための情報を提供することです。
「テスト実施者」と「修正を担当する開発者」が別の場合は、不具合チケットが重要なコミュニケーションツールになります。 このレクチャーでは、効率的な不具合修正のためのチケットの書き方について解説します。
目次
不具合チケットとは
ソフトウェア開発では、必ず不具合が発生します。 発見された不具合を管理するために、Jira や Redmine などのチケット管理システムを使用するのが一般的です。 不具合チケットとは、チケット管理システムに登録される文書です。 不具合の発生条件など、原因特定や修正に必要な情報を記録します。
不具合チケットの役割
不具合チケットはバグの修正に利用されます。 そのため、
- 不具合を再現させるための手順が書かれていること
- 「現在の挙動」と「仕様」がどのように違うのかが明記されていること
が重要です。
良い不具合チケットを作成することで、そのチケットを受け取った修正担当者は同じ不具合を再現させることが可能になります。 自分の手元で再現できれば、そこから原因を追究し、修正案を見つけることができます。
不具合チケットのテンプレート
不具合チケットには次のようなことを書きます。
チケットタイトル
====
## 優先度
## 再現手順
## 期待される挙動と実際の挙動
## 実施環境
それでは、それぞれの項目で何を書くべきなのかを見ていきましょう。
タイトル
タイトルには、
- どのような操作をすると
- どのような挙動があったのか
を具体的に書きます。 例えば、
- ユーザー検索で会員ステータスを退会済に設定して検索を実行したとき、退会済み会員がヒットしない
のようなタイトルがよいタイトルです。 どのような操作をしたか、その結果どのような挙動があったのかについて具体的に書いているところがポイントです。
「会員検索の挙動が正しくない」のようなタイトルはあまりよくないタイトルです。 これでは、なにをしてなにが起きたのかがわかりません。
優先度
不具合チケットには優先度 (priority) をつけます。 開発組織ごとに優先度判断の基準があると思うので、それに従って設定しましょう。
再現手順
修正担当者は不具合チケットを受け取ると、チケットに記載された事象を手元で発生させて原因を特定しようとします。 このときに必要な情報が「再現手順」です。
再現手順はとにかく具体的に書きます。 画面名、項目名、ボタン名などを画面に表示されている通りに記載しましょう。
たとえば、ユーザー検索がうまくできなかった場合の再現手順は次のようになります:
1. 管理者サイト http://example.com/admin にログインする
2. 画面:ユーザー一覧 http://example.com/admin/users にアクセス
3. 検索条件のチェックボックス:会員ステータス で、項目:退会済み にチェックを入れる
4. 他の項目はデフォルト値のまま、検索ボタンを押下
プロダクトの仕様に詳しくない人でも再現手順を読めば不具合を再現させられるくらい具体的に書くのがコツです。
期待される挙動と実際の挙動
ソフトウェアの不具合とは「仕様と実際の挙動が異なる」ことです。 そのため、不具合チケットには
- 仕様
- 実際の挙動
の2点セットが必要です。 仕様の部分は、仕様書の該当箇所へのリンクや引用で済ませることもあります。
ユーザー検索がうまくできなかった場合の記述は次のようになります:
- 仕様:ユーザーのステータスを指定してユーザーを検索できる
- 挙動:退会済みユーザーが検索にヒットしない
再現手順だけがあっても、どのような挙動のことを不具合と認定したのかがわからないときがあります。 そのため、期待される挙動と実際の挙動について、仕様を参照して明記するようにしましょう。
実施環境
テストを実施した環境として次のことを不具合チケットに記載します:
- テスト環境名・URL
- 操作したユーザーのログインIDとパスワード
- アプリであれば、アプリのバージョン
テスト環境名やURLが分かると、修正担当者がテストした環境にどのコードがデプロイされているかを特定できます。 開発時には常にコードが変更され続けています。 そこで、どのコードで不具合が発生したかという情報は修正担当者にとって貴重な情報となります。
テストユーザーの情報は、不具合の再現させるときやデータの調査で役に立ちます。 修正担当者は、不具合を再現させるときにテストを実施したユーザーを使用する場合があります。 また、原因を調べるために不具合が発生したユーザーのデータを調べたりすることもあります。
チケットテンプレートを活用した不具合チケットの例
それでは、ここまでの知識を活用して書かれたチケットを見てみましょう。
「不具合を再現させるための手順」と「現在の挙動と仕様がどのように違うのか」について明記されていることを確認してください。
このチケットを受け取った修正担当者は、http://example.com/admin の環境に [email protected]
でログインして不具合を再現させる作業を始めることができます。
ユーザー一覧の検索で会員ステータスを退会済に設定して検索を実行したとき、退会済み会員がヒットしない
====
## 優先度
S:修正しないと機能が使えない
## 再現手順
1. 管理者サイト http://example.com/admin にログインする
2. 画面:ユーザー一覧 http://example.com/admin/users にアクセス
3. 検索条件のチェックボックス:会員ステータス で、項目:退会済み にチェックを入れる
4. 他の項目はデフォルト値のまま、検索ボタンを押下
## 期待される挙動と実際の挙動
* 仕様:ユーザーのステータスを指定してユーザーを検索できる
* 参照した仕様書:https://example.com/spec/123
* 挙動:退会済みユーザーが検索にヒットしない
## 実施環境
- テスト環境:https://dev.example.com
- 操作したユーザーのログインIDとパスワード:[email protected] / password1234
まとめ:効果的な不具合チケットは開発の効率を高める
このレクチャーでは、よい不具合チケットの書き方を解説しました。
- 不具合チケットには、不具合の再現手順とどのような挙動が仕様を満たさないのかを明記する
- 開発組織のルールに従った優先度を設定する
- 再現手順は、仕様に詳しくない人でも操作できるように具体的に書く
- テストを実施した環境のURLやユーザーID・パスワードを記載する
不具合を発見するだけではソフトウェアの品質は上がりません。 不具合を修正してはじめて高品質なソフトウェアが実現します。 ソフトウェアの品質を上げる作業を進めるにあたって、重要なツールが不具合チケットです。 効率的な開発をサポートするために、このレクチャーで紹介したようなよい不具合チケットを書けるになりましょう。