Bug Report

How to write bug reports that help teams understand, reproduce, and prioritize problems quickly.

Updated:

Contents

A bug report is a communication tool as well as a defect record. A good report saves time: developers can reproduce the problem, managers understand its impact, and QA can track the fix and related risks.

What a report usually contains

  • →A clear title identifying the problem.
  • →Environment and relevant preconditions.
  • →Reproduction steps.
  • →Actual and expected results.
  • →Evidence: screenshots, video, logs, network traces, payloads, or stack traces.

What makes a strong report

  • →The problem is easy to understand and reproduce.
  • →Facts are distinguished from interpretations.
  • →User, business, or system impact is explained.
  • →Irrelevant details do not obscure decisions.

Common mistakes

  • →A vague title such as “button does not work.”
  • →Missing or overly abstract expected results.
  • →Steps that omit essential conditions and cannot reproduce the defect.
  • →Priority and severity based on emotion rather than risk.

Practical guidance

Write for someone unfamiliar with your testing context. The faster they can establish what failed, how to reproduce it, and why it matters, the better the report.

Worked example: a reproducible defect report

The following is a fictional training example, not a defect observed in a real product. Assume requirement REG-04 says a nickname accepts 3–12 ASCII letters, inclusive. The example build incorrectly rejects exactly 3 letters. Keep real reports tied to an approved requirement and an actual observation.

plain text
ID: DEMO-17
Title: Registration rejects a 3-letter nickname allowed by REG-04
Environment: fictional training build 1.0; browser and OS: record actual versions
Preconditions: registration form open; all other fields contain valid data
Steps:
1. Enter abc in the Nickname field.
2. Move focus to the next field.
3. Submit the form.
Expected: no nickname-length error; registration can continue.
Actual in this fictional scenario: "Minimum 4 characters"; submission is blocked.
Reproducibility: 3 of 3 attempts after resetting the form.
Impact: a permitted nickname cannot be registered.
Evidence to collect: screenshot, build ID, timestamp and sanitized request/response.
Requirement: REG-04.
Severity / priority: agree using the team’s definitions and release context.

The title names the action, input and deviation. It does not guess that the backend is responsible. If only the UI has been observed, record that fact; inspect the request before claiming a server-side cause. Screenshots and logs listed above are evidence to collect, not attachments provided by this guide.

Copyable report template

plain text
Title:
Build / environment:
Requirement or expected-behavior source:
Preconditions and test data:
Steps:
Expected result:
Actual result:
Reproducibility:
User impact:
Sanitized evidence:
Related issue / test case:

Before sending, ask a teammate to follow only the recorded steps. Remove credentials and personal data from evidence. A report that cannot yet be reproduced can still be useful: state what is known, how often it happened, and which information is missing.

Continue learning

Test cases

Severity vs. priority

Technique reference: ISTQB CTFL syllabus, sections 4.2 and 5.5. Examples above are original training scenarios.