Skip to main content

Command Palette

Search for a command to run...

Defect Report Writing

Published
5 min readView as Markdown
Defect Report Writing
M

Matachi Ononuju, popularly known as "Madam QA," is a Software Quality Assurance Engineer and Community Strategist dedicated to the art of building reliable software. She helps Digital Products scale with confidence by transforming technical complexity into seamless user experiences. Matachi bridges the gap between manual testing and advanced automation.

Hey Fam 👋, today we’re diving into defect reporting and how to do it effectively.

If you’re like me and you love learning (and unlearning), this article is definitely for you. Defect report writing has been a journey for me. At first, I used to overstuff reports with too much information, and then I swung the other way, leaving out details that developers actually needed. Finding the right balance has been a real learning curve. Why does this matter? Because a poorly written defect report can waste time, frustrate developers, and even delay a release. A clear one saves everyone headaches.

In this post, I’d love to break down what defects are, what defect reporting really means, and why it’s such an important part of our QA space.

What's a defect?

Think of a defect as the gap between what the software is supposed to do and what it actually does. For example, if you click a ‘Save’ button and instead of saving your work, the app crashes, that’s a defect.

What’s Defect Report Writing?

Now, how do we pass this information over to the team, letting them know things aren't working as expected?

Well, that's where defect report writing comes in.

Writing a defect report is the process of precisely and concisely describing a flaw so that developers, or whoever is resolving the problem, can comprehend, replicate, and fix it. Giving the appropriate details is more important than simply stating that "something is broken":

Here's how we break it down.

  • What happened (the issue/bug)

  • Where it happened (environment, device, page, feature, etc.)

  • Steps to reproduce it

  • What you expected vs. what you actually saw

  • Any supporting evidence + Severity/Priority (screenshots, logs, videos)

To put it briefly, a well-written defect report explains the issue so that developers don't have to do any detective work. 🕵️‍♀️

This is the difference between a report that gets fixed fast and one that gets sent back for details. Take a look at the two examples below:

I personally use the popular 5W's and H to tell the story of the defect, and S and S.P (Supporting Evidence + Severity/Priority) to explain the weight of the defect. I completely made up the term S and S.P., but who knows, maybe one day ISTBQ would adopt the term (haha! 😂)

Telling the Story (5Ws + H)

So here's how it works, when I'm telling the story;

  • Who: reporter or impacted user group

  • What: the defect itself (expected vs. actual)

  • When: the condition/timing (precondition)

  • Where: the location/context (The environments/ devices)

  • Why: the impact/importance

  • How: the steps to reproduce

Example: Defect Story in Action

Here's a table to help break down the story

QuestionMapped ComponentMy Example Entry
Who?• Reported by• Affected userReported by: Matachi -  QA Engineer• Affected user: Any offline user
What?• Title• Expected vs Actual ResultTitle: App crashes when tapping Profile tab while offline • Expected Result: Show “No Internet Connection” screen • Actual Result: App crashes instead
When?The preconditionPrecondition: Network state: Offline (Wi‑Fi & Mobile Data off) - The user must be offline
Where?• Screen or feature name • Environment/DevicesScreen/Feature: Profile tab (bottom nav, 3rd icon) • Environment/Devices: Staging environment → Samsung Galaxy S20
Why?•The impact/importanceImpact: This blocks access to the product and impacts customer experience
How?• Steps to Reproduce•Steps to Reproduce: 1. Launch the app.2. Disable Wi‑Fi & Mobile Data 3. Tap Profile tab
Impact?• Priority• SeverityPriority: High (blocks user flow)• Severity: Critical (app crash)

Explaining the Weight (Severity, Priority, Evidence)

After telling the story, we break down the impact and the weight of the defect.

  • Supporting Evidence: Screenshot, recording, or error logs.

  • Severity/Priority: High, Blocks users from logging in.

⚖️Example: Defect Weight + Supporting Evidence

ElementPurposeExamples
SeverityDescribes the impact on the system if the defect is not fixed.- Low: typo, cosmetic issue- Medium: functionality broken but workaround exists- High: core functionality broken- Critical: system unusable/data loss
PriorityDescribes the urgency for the business to fix the defect.- Low: nice-to-have fix- Medium: fix in next sprint/release- High: must fix soon- Critical: immediate fix required, blocks release
Supporting EvidenceProvides proof that the defect exists, helping devs reproduce and fix it faster.- Screenshots 📸- Screen recordings 🎥- Logs 📝- Test data used

Always remember the most important thing in defect writing is to give a clear explanation of the bug found. This makes it easier for the developers and anyone on the team to understand what is reported.

Quick Checklist for a Solid Defect Report:
1. Keep it clear and concise
2. Add supporting evidence (screenshots, logs, recordings)
3. Explain severity & priority
4. Make it reproducible with steps

I understand that putting all this together, especially with tight deadlines, can be time-consuming. I wrote an article on Testers Connect that explains how I’ve used AI to improve my defect reports.

I’d love to hear how you approach defect reporting. Drop your tips or struggles in the comments!

Thanks for reading 😊

Test Case Writing

Part 4 of 4

Welcome to the ‘Test Case Writing Basics’ series, where we turn the art of writing test cases into an adventure! Get ready to dive into the world of QA with tips, tricks, and no-nonsense strategies for crafting test cases that work like a charm.

Start from the beginning

Exploring the Importance of Test Case Writing

Last year, The Bug Detectives Community conducted beta testing for an Application where the participants were tasked with finding as many critical bugs as possible, and whoever found the highest number of critical bugs would take the win. 💡 Critica...