🐞 The Art of Bug Reporting
The Art of Bug Reporting: A good bug report is like an accident report. The person writing it stands alone at the scene; the adjuster who reads it will never go there.
A good bug report is like an accident report. The person writing it stands alone at the scene; the adjuster who reads it will never go there. That is why the report does not say "a car crashed" -- it says which junction, which lane, which weather, which speed, which skid marks. The goal is to let the reader rebuild the event in their mind. The question worth pausing on: with the developer sitting two metres away and the issue explainable in ten seconds, why spend ten minutes writing a report? Because the reader is usually not that developer: it is another engineer on night duty, a new teammate six months from now, or you, seeing the same failure a second time. Compare: when a test breaks you want more than "assertion failed" -- you want the expected and the actual value side by side. A bug report is exactly that: an assertion message written in human language. "Checkout is broken" is a failure with no assertion message. The measurable cost for QA: an incomplete report bounces back as "cannot reproduce". Every bounce splits two people's day, extends the age of the bug and, worst of all, lets a real defect close under a "not reproducible" label. Report-writing discipline is not politeness; it is the final step of finding a defect.
🎬 Five Days of a Bad Bug Report
Day 1, 09:00 -- Ayse finds a bug and writes the report in three seconds: title "Checkout is broken", no description. She feels at ease because it is now visible on the board. The work has actually just begun.
Day 2 -- Mert opens the report, tries it with his own test data, finds nothing wrong. With no environment, steps or evidence in hand, all he can do is write "cannot reproduce" and bounce it back.
Day 3 -- Ayse gets the record back, but does not fully remember which coupon, which product she used TWO DAYS ago. She has to test from scratch -- paying for her own mistake out of her own time.
Day 4 -- This time the report is written completely: environment, precondition, deterministic steps, expected/actual, evidence. Mert opens it and reproduces the exact failure in FIVE MINUTES -- what looked impossible three days ago takes five minutes with a complete report.
Finale (the contrast) -- On Day 5 the bug is fixed and verified. Total cost: 5 days, two people's lost time, one "cannot reproduce" stamp. Had the report been written completely on Day 1, this would have fit into a few HOURS -- the only thing that changed in between is the completeness of the report, not the bug itself.
1️⃣ D1. The Anatomy of a Good Bug Report
A bug report has six mandatory parts, and each answers a different question: Title (what happened on which screen?), Environment (which browser/version/OS?), Precondition (which user, which data?), Steps (in which order was it clicked?), Expected/Actual (what should have happened, what did?), Evidence (what proves it?). Miss any one of the six and the reader fills that gap with their OWN assumption -- and usually assumes wrong.
Step by Step: How Does a "Checkout Is Broken" Report Become Usable?
Start: a title that says nothing
"Checkout is broken" leads to no decision among thirty cards on a board. A title must let the reader prioritize without opening the card.
Title formula: [screen/flow] + [observed wrong behavior] + [triggering condition]. "Coupon amount deducted twice on the checkout step (percentage coupons only)".
Preconditions are written