Defect (Bug)
A flaw in the software that causes it to behave incorrectly or unexpectedly.
Full Definition
A defect (also called a bug, fault, or issue) is a deviation between expected and actual behavior of the software. Defects are discovered during testing or reported by users in production. They represent a gap between what the software should do (per requirements, design, or reasonable user expectations) and what it actually does. While the terms "bug," "defect," "fault," and "issue" are often used interchangeably, some organizations distinguish between them — a "fault" might refer to the code error, while a "defect" refers to the observable incorrect behavior.
Defect attributes that every bug report should include:
- •ID: Unique identifier for tracking and cross-referencing
- •Title: Brief, searchable description that captures the essence of the problem
- •Description: Detailed explanation of what went wrong, including what was expected versus what happened
- •Severity: Impact level — Critical (system down, data loss), High (major feature broken, no workaround), Medium (feature broken, workaround exists), Low (cosmetic, minor inconvenience)
- •Priority: Urgency of fix — P1 (fix immediately), P2 (fix this sprint), P3 (fix this release), P4 (fix when possible)
- •Status: Current state in the lifecycle (Open, In Progress, Fixed, Verified, Closed, Reopened)
- •Assignee: Developer responsible for the fix
- •Reporter: Person who found and reported the defect
- •Environment: Where it was found (OS, browser, device, build version, environment)
- •Steps to Reproduce: Exact, numbered steps to recreate the defect — the most critical field in the report
- •Actual Result: What happened when the steps were followed
- •Expected Result: What should have happened instead
- •Attachments: Screenshots, screen recordings, log files, network traces
Defect lifecycle in most organizations:
New → Triaged → Assigned → In Progress → Fixed → Ready for Retest → Verified → Closed
(with possible states: Rejected, Deferred, Reopened at various points)
The distinction between severity and priority trips up many teams. Severity is an objective measure of impact — a crash is always Critical severity. Priority is a business decision about when to fix it — a Critical crash in a feature used by 0.1% of users might be P3 (fix this release) while a Medium-severity styling issue on the pricing page might be P1 (fix immediately) because it's hurting conversions. Severity is set by the tester who finds the defect; priority is set by the product owner or triage team.
One of the most common mistakes in defect management is writing bug reports that can't be reproduced. "The app crashed" tells a developer nothing. "The app crashed when I clicked something on the checkout page" is barely better. A good bug report reads like a recipe: anyone should be able to follow the steps and see the same problem. Include the exact data used, the exact sequence of actions, and any relevant environmental details. If the defect is intermittent, say so explicitly and note how many times it reproduced out of how many attempts. Another frequent issue is defect hoarding — testers log defects but nobody triages them, leading to a backlog of hundreds of unreviewed bugs that nobody trusts or uses. Regular triage sessions (daily or per-sprint) keep the defect backlog healthy and actionable.
Defects found earlier in the software development lifecycle are dramatically cheaper to fix. A requirements defect caught during review might cost an hour to fix; the same defect found in production after release might cost weeks of emergency patching, customer communication, and reputation repair. This is why testing early and often — through requirements reviews, design reviews, and shift-left testing — is so valuable. The goal isn't to find zero defects (that's unrealistic) but to find them as early as possible and fix the highest-impact ones first.
Examples
- 1.BUG-001: Login button unresponsive on Safari browser — steps to reproduce include navigating to the login page on Safari 17.2, entering valid credentials, and clicking the login button. The button's click event is not firing due to a CSS z-index issue with an overlapping element.
- 2.BUG-042: Checkout total calculates incorrectly with percentage discount codes — applying a 20% discount code to a $100 order shows a total of $85 instead of $80, indicating the discount is being calculated on the post-tax amount instead of pre-tax
- 3.BUG-100: Application crashes when uploading files over 10MB — the backend returns a 413 Payload Too Large error but the frontend doesn't handle it gracefully, showing a blank white screen instead of an error message
- 4.BUG-155: Email notifications sent in wrong timezone — users with timezone set to PST receive daily digest emails with timestamps in UTC, causing confusion about which events happened when
- 5.BUG-200: Race condition in concurrent order processing — when two users purchase the last remaining item simultaneously, both orders are confirmed but only one can be fulfilled, requiring manual intervention to cancel and refund one order
- 6.BUG-210: Accessibility issue — screen reader announces "clickable" for decorative images that have empty alt attributes but missing role="presentation", confusing users navigating with assistive technology
In BesTest
BesTest enables creating Jira bugs directly from failed test executions, automatically linking the defect to the test case with full context — steps, expected vs. actual results, and environment details. Because test data lives in BesTest's own storage rather than as Jira issues, defect tracking stays clean without contributing to Jira issue bloat.
Related Terms
Test Execution
The process of running test cases and recording the actual results.
Test Case
A documented set of conditions and steps used to verify that a software feature works as expected.
Regression Testing
Testing that verifies existing functionality still works after code changes.
Test Cycle
A single iteration of testing a specific set of test cases, typically associated with a release or sprint.
Smoke Testing
Quick testing of critical functionality to verify the build is stable enough for further testing.
Test Report
A document summarizing test execution activities, results, and quality assessment for stakeholders.
See Defect (Bug) in Action
Experience professional test management with BesTest. Free for up to 10 users.
Try BesTest Free