Skip to main content

Defect

A defect (or bug) is a flaw in software that causes it to produce an incorrect or unexpected result, or to behave in a way that violates its requirements. Defects are found during testing or in production, logged with steps to reproduce, and tracked through a lifecycle from Open to Fixed to Verified to Closed.

"Defect" and "bug" are used interchangeably in most teams, though some style guides reserve "defect" for anything logged in a tracker and "bug" for the informal, in-conversation term. Neither distinction matters much day to day.

What does matter is the difference between a defect, an error, and a failure. A developer makes an error (a mistake in the code). That error becomes a fault (a flaw sitting in the code, waiting). Under the right conditions, that fault causes a failure (the visible, wrong behavior a user or tester actually observes). The defect report documents that failure — what happened, what should have happened, and exactly how to reproduce it.

A good defect report is reproducible by someone who wasn't there when it happened: clear preconditions, numbered steps, actual vs. expected result, environment details (browser, OS, build number), and evidence (screenshot, log, video). A defect that can't be reproduced from its own report usually gets bounced back or closed as "cannot reproduce" — the single most avoidable waste of a defect lifecycle.

Severity (how bad the impact is) and priority (how soon it should be fixed) are tracked separately, because a low-severity issue can still be high-priority if it's blocking a launch.

Defect — Definition, Example & How It's Used | QA Bash Glossary | QA Bash