あなたが開発者で、テスターが回帰テスト中に見つかったバグを持ち込んできたと想象力してください。このバグを修复したいので、チケットの作为を依頼します。あなたはすでに、そのバグをどのようにピックアップし、プル リクエストをリンクし、製品マネージャーに質問が出ないように見積もりを追加するかを想象力しています。
しばらく時間が経ち、新しいチケットが届きましたが、中には数行とスクリーンショットしかありません。ため息をつきながら、この情報を使ってバグを再現しようとしましたが、エラーは出ません。何度か試しましたが、結局、バグを再現できないことをテスターに伝え、新たな説明のラウンドが始まります。
新しいタスクに取り組んだり、他のバグを修正したり、アニメを見たり、コードをリファクタリングしたりするために使用できたはずの時間を費やしています。
私の名前はEvgeny Domninです。私はQAです。良いバグレポートとは何かという私の見解をお伝えしたいと思います。前置きが長くて申し訳ありませんが、早速始めましょう。
タイトル
チケットのタイトルにある 3 つの質問に答えてみてください。
- それはどこで起こりますか?
- 何が起こるのですか?
- どのような状況ですか?
経験豊富な開発者であれば、タイトルをざっと見るだけで問題が看法できます。例:
ログインページ: 間違ったパスワードを入力するとフィールドがハイライト表示されません
環境
テスターが、問題が発生した環境をチケットに明記し忘れるのをよく目にします。これは、Web サイトのアドレスやネットワーク リクエストが数字代表されない UI 関連のチケットでは特に比较重要です。必ず明記してください。チケットに別のフィールドがある場合は、そこに記入してください。ない場合は、再現手順でそのことを記載します。例:
管理者アカウントでステージング環境にログインします。
ステップといえば...
再生手順
最も决定性なセクションの 1 つは、バグの再現手順です。ここでは、手順のフォーマット (ビジュアル) とコンテンツ (的内部のデータ) の 2 つの部门に主焦点を当てます。
ビジュアル部分
構造を維持する
バグレポートにはさまざまなバリエーションがありますが、一样的には次のセクションが含まれます。
- 手順
- 期待される結果
- 実際の結果
この構造を运用し、常にそれに従ってください。これは、問題を説明するときに統一性が考えを收集するのに役立つケースの 1 つです。
番号付きリストを使用する
系列番号付きリストを运用して手順を拆分します。テスターが詳細な説明を、連続したテキスト ブロックとして記述することがあります。これは行わないでください。手順を拆分すると、誰にとっても読みやすくなります。
也许な限り、文法的な誤りのない書き方をしてください。
それでは、これらの手順の介绍に移りましょう。
説明における常識
バグを再現するために核心でない場合は、すべてのアクションを個別のステップに合拼する有需要はありません。これは、読みにくく、実際に动用しにくいためです。1 つのステップに複数のアクションを含めることを恐れないでください。どういう暗示着でしょうか?
悪い:
test.com/login
にアクセスしてください
- ログインフィールドをクリックします
- ログインを入力してください
- パスワードフィールドをクリックします
- パスワードを入力してください
良い:
-
test.com/login
にアクセスし、任意のアカウントでログインします。
開発者が標準的なフローに従いながら必然に行うようなステップに細分解しているわけではありません。私が始めた頃は、すべてのアクションに具有のステップが必备だと考えていましたが、それは必备ありません。
曖昧さを避ける
各ステップで確認する主要情况的な标准を常にステップに追加し、押す主要情况的なボタンを記述します (特に同じ名前のボタンがある場合)。
テストデータを含める
エラーがアカウントに関連している場合はログイン データを供应し、バグの再現に役立つテスト ペイロードを躊躇せずに含めてください。
もう一度手順を確認してください
バグが発生した直後に手順を記述しても、基本に理解是什么するために必不可少な手順が抜けていたり、後でバグを再現できなかったりすることもあります。その場合は、より正確な手順を見つける必不可少があるかもしれません。
期待される結果
盼望される結果に関する別のセクションがあり、ここでは (然而ですが) 手順を実行したときに盼望される結果について説明します。このセクションは必ず存在的する用不着があるということ其它に、特別な推奨事項はあまりありません。開発者は、機能がどのような動作につながるかを正确理解する用不着があります。「すべて常规に動作するはずです」などのフレーズでは不甚为です。具体化的な動作を記述してください。
実際の結果
ここでは、手順を実行したときに実際に何が起こったかを書きます。ここでも、具体的性は比较重要です。「すべてが壊れた」とだけ書かないでください (おそらく実際に起こったことですが)。すべてが壊れたことを示す指標を説明します。例:
GET /accounts
リクエストで 500 エラーが返され、UI がブロックされます。ユーザーはページを終了したり、要素をクリックしたりできません。
ページを更新するとリクエストが再度トリガーされ、同じエラーが発生します。
つまり、実際の効果とそれがユーザーのフローにどのような影響を与えるかを説明します。
追加ファイル
これは言及する価値のある別のセクションです。バグを説明する追加情報を添付する場所です。再現手順を読むのが好きではなく、実際の結果とそれを説明する追加資料に间接進む開発者もいます。
エラーのスクリーンショット
100 回聞くよりも、曾经見たほうが良いでしょう。これは、何がどこで起こっているかを視覚的に示す優れた工艺です。必ずスクリーンショットを添付してください。
リクエスト
エラーが発生したリクエストがある場合は、必ずチケットに含める相应があります。ただし、リクエストにはさまざまなパラメータが含まれます。含める相应がある比较重要なパラメータとして、次の点を強調します。
- エラー URL – テストが行われているブラウザのネットワーク セクションから取得できるリクエスト自体。
- メソッド–
GET
、 POST
、 TRACE
、 OPTION
など。同じ URL でもメソッドが異なるリクエストがあるように、メソッドも多数あります。チケットで指定することを忘れないでください。
- エラー コード– もう一つの重要なポイントです。おそらく忘れることはないでしょうが、サーバーから返されたコードを忘れずにメモしておいてください。
- ペイロード– これは、サーバーへのリクエストで送信したデータです。これはすべてのリクエストに存在するわけではありません (たとえば、HEAD または GET には存在しません) が、エラーの原因である可能性があります。
- レスポンス– サーバーのレスポンス。エラー全体、発生した場所も含まれる場合もありますが、その種類のエラー用にバックエンドで設定されたデフォルトのプレースホルダーのみの場合もあります。必ずこれを含めてください。開発者の時間を大幅に節約できます。
コンソールログ
コンソールにエラーが見つかることもありますが、そのエラーはチケットに追加できます。すでに実行しているかもしれませんが、大きなテキスト ブロックはいつでも.log
ファイルとして保存し、チケットに追加できることをここで述べておきます。これにより、ログとチケット自体の両方の読みやすさが向上します。
それはそれでいいのですが...
これはすべて結構ですが、すべてをこのように見栄えよくする時間はどこで見つけるのでしょうか? 締め切りが迫っている、マネージャーは怒っている、制成に障害がある、そして私は座ってすべてを書き出すように言われている? 開発者に直接性メッセージを送るだけです。それだけです。
これは、起こり得る論理的な議論です。私は、テストに着实な時間が割り当てられ、すべてがプロセスに従って進み、徹底した高品質のドキュメントが維持される、テスターの完璧な的世界について幻想英雄を抱いていません。认识しています。多くの場合、それは時間に追われ、目が疲れ、すべてを時間内に終わらせるための競争です。
小さなエラーは積み重なり、コンテキストの切り替えに時間がかかり、悪い習慣につながる傾向があります。徐々に调节を実施し、その効果を監視していくと、すべての报名者にとってより安定し、標準化され、予測也许 なプロセスを弄成できるようになります。
プロジェクト マネージャーは、全員を呼び出して新出情報を下手しなくても製品で何が起こっているかを应该了解住でき、開発者はテスターに再現要求の説明を求めたり、テスターをテストから引き離したりする一定がなくなり、関係者は製品の進捗状況を明確に应该了解住できるようになります。
この記事は、テストを始めたばかりの初衷者や、すでにテストを始めている初衷者を対象としています。小さなステップが大きな結果につながると信じており、この記事の推奨事項に従うことで、より質の高いバグレポートが制成されます。
ご質問、ご提案、ご意見、ご不満などございましたら、お気軽にコメント欄にご記入ください。皆様のご意見をお待ちしています。