Guide

How to write
a good bug report.

A practical guide for developers and QA, with an example and a template you can copy.

Published 23 October 2026For developers and QATemplate included

“The page is broken. Please fix it.” A developer cannot act on that: which page, broken how, on what browser, after what clicks? Each question costs a round trip, and some bugs never get fixed because nobody can reproduce them. Knowing how to write a good bug report removes most of that back-and-forth. The goal is simple: give the next person enough to see the same problem you saw.

What to include

What to include in a bug report.

Not every report needs every field. A typo on a marketing page does not need console logs. But a report that cannot be reproduced needs the first four items below.

Bad vs good

The same bug, written twice.

This example is invented for illustration. It does not describe a real application.

Before Vague

Title: Checkout broken

Coupons don't work. Please fix.

After Specific

Title: Checkout total doesn't update
after removing a coupon

Environment
- Chrome 130 on macOS 15, desktop
- Production, regular customer account

Preconditions
- Cart contains one item ($90.00)

Steps to reproduce
1. Open the cart and go to Checkout.
2. Enter coupon code SPRING10 and click
   Apply coupon. The total changes to $81.00.
3. Click Remove coupon.

Expected result
The coupon is removed and the total returns
to $90.00.

Actual result
The total stays at $81.00. The coupon row
disappears, but the discount is still
applied. Reloading shows $90.00.

Frequency
Every time (5 of 5 attempts).

User impact
Customers may see a wrong total before
paying. Placing the order was not tested.

Attachments
- Screen recording (42 seconds)
- Console: TypeError: Cannot read properties
  of undefined (reading "total")
- Network: DELETE /api/cart/coupon returned 500

Why the second version is easier to investigate

  1. 01
    The title can be found and triagedIt names the flow and the symptom.
  2. 02
    The developer starts where you startedThe environment and precondition mean the same cart.
  3. 03
    The steps can be checked as they goThe total changing to $81.00 lets the reader confirm they are on track.
  4. 04
    The bug is a clear differenceExpected and actual results are separate, and “not tested” stops anyone assuming more.

What to attach

Screenshots, recordings and technical logs.

A clue, not a verdict

Pages log harmless warnings, and some failed requests are unrelated to your bug. Include only what appears when the problem happens, and let the developer judge the cause.

Template

A bug report you can copy and paste.

Paste this into your issue tracker or a document. Delete any section that does not apply.

Markdown Template

## Title
[What happens, and where. One issue only.]

## Environment
- Browser and version:
- Operating system / device:
- App version or environment (production, staging):
- Account type or role:

## Preconditions
[Only if needed: signed-in state, existing data, feature flags.]

## Steps to reproduce
1.
2.
3.

## Expected result
[What should happen.]

## Actual result
[What happens instead. Quote error messages exactly.]

## Frequency
[Every time / sometimes (e.g. 3 of 5) / once.]

## User impact
[Who is affected and what they cannot do.]

## Attachments
- Screenshot or recording:
- Console errors:
- Failed network requests (method, URL, status):

## Additional notes
[Workarounds, related reports, things you already ruled out.]

Before you share

Remove credentials, access tokens, session cookies, personal information and anything else sensitive. Check recordings, screenshots, copied logs and request headers. If something cannot be removed, share it only through a channel that is appropriate for that data.

Using Show Along

How Show Along helps with browser bug reports.

Show Along is a Chrome extension for recording bugs. It gathers the attachments above in one recording, but it does not write the report for you: you still add the title, the expected and actual results, and the impact.

Show Along does not send recordings to the developer, and nothing goes online unless you connect Google Drive or OneDrive and choose to upload. It is not encrypted, so check a recording before you share it. See the privacy policy.

  1. 01
    Screen recordingRecord the Chrome tab you choose and show the steps in order.
  2. 02
    Microphone audioSay what you expect and what you see. The microphone is optional.
  3. 03
    Console and network page detailsOff until you turn them on, then captured for the tab you are recording.
  4. 04
    One timelineSteps, clicks, screenshots and page details line up with the video.

Quick answers

Good questions.

Make it easy to reproduce.

A good bug report makes it easy for another person to understand, reproduce and investigate the problem.

Want to see it first? Read how Show Along works.