How to Write a Great Bug Report
A bug report is a message to the developer. Your job is to make the bug so clear that the developer can reproduce it and fix it without asking you questions.
One short line that says what is wrong and where.
Tip: Use the format [Where]: [What happens] [When/How].
A numbered list that anyone can follow, step by step. Start from the very beginning (for example: open the browser, go to the URL).
1. Open https://app.example.com/login
2. Enter email: test@example.com
3. Enter password: Pass&123
4. Click "Log in"
Rules: - Number every step. - One action per step. - Include the exact data you used (usernames, files, amounts).
What should happen, based on requirements or common sense.
"User is logged in and redirected to the dashboard."
What really happens.
"Error page with message '500 Internal Server Error' is shown. User is not logged in."
Where the bug happened:
See guides/testing-basics.md for more on this.
Show, don't just tell:
๐ก A 30-second screen recording often saves 30 minutes of discussion.
Title: Checkout doesn't work Description: I tried to buy something and it failed. Please fix ASAP.
Why it's bad: No steps, no data, no environment, no evidence. The developer must guess everything.
Title: Checkout: "Place order" button does nothing when cart has more than 20 items
Environment: Chrome 126 / Windows 11 / staging / build 2.4.1
Steps: 1. Log in as buyer@test.com (password: Test1234) 2. Add 21 different items to the cart 3. Go to cart โ click "Checkout" 4. Fill in a valid address and click "Place order"
Expected: Order is created, confirmation page is shown. Actual: Nothing happens. Button shows spinner for 1 second, then stops. No error message. Console shows
POST /api/orders 413 Payload Too Large.Severity: Major | Priority: High Attachments: video.mp4, console-log.txt
Why it's good: Anyone can reproduce it. The console error even hints at the cause.
| โ Bad | โ Good |
|---|---|
| "Bug in search" | "Search: no results found for keywords with apostrophe (e.g. Levi's)" |
| "App crash" | "Android app: crash on startup after update to 3.2.0 on Samsung S23" |
| "Wrong price" | "Cart: total price shows $0 when discount code SAVE10 is applied" |
Next step: Use templates/bug-report-template.md โ copy it for every new bug.