How to Write an Effective Defect Report (Step-by-Step)

🧩 1. Clear & Specific Title

  • Keep it short but descriptive.
  • Bad: “App not working”
  • Good: “Login fails with 500 error when using invalid email format”

📄 2. Unique Bug ID

  • Use a clear and consistent format (usually auto-generated by tools like Jira or Bugzilla).
  • Example: BUG-1032_Login_500_Error

🧪 3. Steps to Reproduce

List each step clearly. Assume the reader knows nothing.

EX:

  • 1. Open the login page
  • 2. Enter `user@@gmail.com` in the email field
  • 3. Enter valid password
  • 4. Click "Login"
📸 4. Expected vs Actual Result

What is the Expected Result?

The expected result is what the system should do when a specific action or input is given, based on the requirements, user stories, or design specs.

🔍 It's how the system is supposed to behave.

🧪 Example:

Scenario: You enter a wrong password and click "Login"

Expected Result:

Error message appears: Incorrect password. User stays on login screen.


What is the Actual Result?

The actual result is what the system actually does during the test — which might match the expected result, or it might not (indicating a bug).

🧪 Example:

Scenario: You enter a wrong password and click "Login"

Actual Result:

  • Page freezes and shows a blank white screen with no error.

🖼️ 5. Screenshots / Logs / Recordings

  • Attach images or videos using tools like Loom, Jira screen capture, or console logs.
  • Mark the area of the bug clearly.

⚙️ 6. Environment Details

Specify the test setup where the bug occurred:

  • - App Version: 3.2.1
  • - OS: Windows 11 / Android 13
  • - Browser: Chrome 132.0
  • - API Environment: Staging
  • - Build: 2025.07.09

🧠 7. Bug Severity & Priority

Define the impact of the bug:

What is Severity?

everity describes how serious the defect is in terms of system functionality or impact.

It reflects the technical impact of the bug on the application.

🧪 Think: “How badly is the system broken?


🛠️ Severity Levels (Common Examples):

Severity LevelDescriptionExample
CriticalSystem crash or data loss; no workaroundApp crashes when clicking "Submit"
HighMajor feature is broken; workaround may existPayment fails, but retry works
MediumMinor functional issuesAlignment issue in UI, incorrect tooltip
LowCosmetic or non-blocking issueTypo in About page, logo not centered


🚦 What is Priority?

Priority indicates how quickly the bug should be fixed, based on business needs, deadlines, or customer visibility.

It reflects urgency, not necessarily severity.

🧪 Think: “How soon should we fix it?


🚨 Priority Levels (Common Examples):



Priority LevelDescriptionExample
HighMust be fixed ASAP (blocks release or key flow)Bug in login page
MediumFix in the next sprint/releaseCart total doesn’t update on page refresh
LowCan be deferred or fixed laterMinor font inconsistency in FAQ section


📚 8. Additional Notes (Optional but Valuable)

Add logs, error codes, or hints.
Suggest related modules affected.
Mention if the issue is intermittent or always reproducible.


📋 ✅ Sample Defect Report Template

Title:Payment fails with error 502 on Safari browser
Bug ID:PAY-2031
Reported By:Hashanthi (QA)
Environment:- App Version: 2.9.4
- Browser: Safari 17.0
- Platform: macOS Sonoma
Steps to Reproduce:1. Go to checkout
2. Select card payment
3. Enter valid details
4. Click "Pay Now"
Expected Result:Transaction succeeds and confirmation page loads
Actual Result:Blank page + 502 Bad Gateway error
Attachments:- Screenshot: `error_502_checkout.png`
- Console Log: `safari_console.txt`
Severity:
Major
Priority:High
Notes:- Works fine on Chrome/Firefox
- Might be CDN or browser-specific issue