Home/Blog/Best Practice
Best Practice

Bug Reports That Get Fixed: Anatomy of a Defect Report Engineers Respect

The difference between a bug that ships and a bug that gets ignored is almost never severity. It is clarity. Engineers triage dozens of reports a day. The clearer yours is, the faster it moves up the queue.

BAD BUG REPORT Title: “Login broken”Description:“Sometimes logindoes not work.”✕ Triaged out within 30s GOOD BUG REPORT Title: Login fails with 500 whenpassword contains @ on Chrome 120Steps: 1, 2, 3 (numbered, minimal)Env: Chrome 120, macOS, prodNetwork: POST /auth = 500Frequency: Always✓ Fixed by next sprint DEFECT REPORTING The same bug, two different fates
Same defect, two reports. The format determines whether it gets fixed or buried in triage.

Why most bug reports get ignored

I have triaged thousands of defect reports across my career. The reasons they get deprioritized are almost always the same. Vague titles. Missing reproduction steps. No environment details. No screenshots. No clear expected vs actual. The tester thought the bug was obvious. The engineer reading it has six other tickets and twenty minutes to figure out which ones to act on. Yours just lost.

The fields that earn respect

A defect report engineers respect always has the following.

  • A specific, action-oriented title. “Login broken” is not a title. “Login fails with 500 error when password contains @ symbol on Chrome 120” is a title.
  • Environment details. Browser, version, OS, device, build number, environment (dev, staging, prod), URL.
  • Numbered reproduction steps. The smallest sequence that triggers the bug.
  • Expected behavior. What should have happened.
  • Actual behavior. What did happen, in detail.
  • Frequency. Always, intermittent, one-time. Engineers care more than you think.
  • Severity and priority. Your best estimate, with a one-line justification.
  • Attachments. Screenshots, screen recordings, console logs, network HAR files, error stack traces.
  • Affected user impact. One sentence on who this hurts and how.

An example, before and after

Before (the bad version):

Title: Login not working

Description: When I try to login it shows an error sometimes.

That report is going to die in triage. Nobody knows what to do with it.

After (the good version):

Title: Login fails with “Server Error” toast when email contains a plus character (+) on production

Environment: Chrome 120.0.6099 on macOS 14.2, production environment, build 4.2.1

Steps to reproduce:

  1. Navigate to https://app.example.com/login
  2. Enter “test+demo@example.com” in the Email field
  3. Enter a valid password for that account in the Password field
  4. Click “Sign In”

Expected: User is authenticated and redirected to /dashboard. The “+” character should be valid in email addresses per RFC 5322.

Actual: A red toast notification appears reading “Server Error. Please try again.” The user remains on the login page. Network tab shows POST /api/auth/login returning 500. Response body: {“error”:”INVALID_EMAIL_FORMAT”}.

Frequency: Always, with any email containing a + character.

Severity: High. Authentication failure is functional and user-blocking.

Priority: High. Affects users with Gmail “plus addressing”, which is common.

Attachments: Screenshot of toast, HAR file showing the failed request, screen recording of the full reproduction.

User impact: Any user with a + in their email cannot sign in. We have an estimated 4 percent of registered users using plus-addressed emails.

The small touches that move tickets to the top

Three habits separate the testers whose bugs get prioritized from the ones who file and pray.

  1. Reproduce twice. Before you file, reproduce the bug from a fresh browser session at least twice. Half of “intermittent” bugs are user error.
  2. Try to find the cause. Open DevTools. Look at the Console. Check the Network tab. If you can paste a real error message in your report, you have just saved the engineer twenty minutes of investigation. They will remember.
  3. Test the simplest reproduction. Strip every unnecessary step. If the bug fires with three actions instead of seven, the report is twice as useful.

Severity vs priority, again

Beginners conflate these. Severity is technical impact. A crash is high severity. A misaligned button is low severity. Priority is business urgency. A typo on the homepage might be low severity but high priority because it affects every visitor. A crash in a feature only ten internal users have access to might be high severity but low priority because the impact is contained.

State both fields. Justify each in one line. The product manager and engineering lead will respect that you thought about both.

What not to put in a bug report

Three things make engineers stop reading.

  • Emotional language. “This is unacceptable” or “How did this ship” tells the reader you are frustrated. It does not help anyone fix the bug.
  • Speculation about the cause without evidence. If you have evidence, share it. If you do not, do not guess.
  • Long, conversational descriptions. Engineers skim. Use structured fields, short sentences, and bullet points.

The follow-up that closes the loop

A bug report is not done when you file it. Track the ticket through its lifecycle. When the engineer marks it fixed, retest in the actual environment. If it works, mark it verified and close. If it does not, reopen with a new comment explaining what is still failing. The testers who close the loop are the ones engineering teams trust.

Tools that help

JIRA is dominant for a reason. Linear is gaining traction. GitHub Issues works for smaller teams. Whatever the tool, the format above translates. Strong reports look the same across platforms.

Browser extensions like Marker.io and BugHerd capture screenshots and console logs in one click. They are worth the small subscription cost if you file a lot of bugs. Otherwise, OS-level screen recording plus browser DevTools are enough.

The career impact

Bug reports are how the rest of engineering experiences your work. A senior developer at a company I worked with told me he could rank the QA team by the quality of their bug reports without ever meeting them. The testers whose reports were tight, clear, and actionable were the ones who got pulled into design reviews. The ones whose reports were vague were the ones who got passed over for promotions.

Your bug reports are not just artifacts. They are advertising. Treat them like it.

Anveet Singh Chhabda
Written by

QA engineer and software testing educator. Manual testing, Playwright automation, and API testing taught from real-world product experience.

Want this kind of breakdown for your specific situation?

1:1 mentorship with Anveet Singh Chhabda. Real reviews, real interviews, real outcomes.

Explore Mentorship