← Back to libraryQuestion 323 of 468

Error, Defect, Bug, Failure and Acceptance Testing

📌 Definition:

Error, defect/bug, and failure are distinct: an ERROR is a human mistake; a DEFECT (bug) is the resulting flaw in the code/document; a FAILURE is when that defect causes the system to behave incorrectly during execution. Acceptance testing (UAT) validates the system meets business needs before release.

📖 Detailed Explanation:

The chain: a developer makes an ERROR (misunderstanding a requirement) → this introduces a DEFECT/BUG in the code → when executed under the right conditions, the defect manifests as a FAILURE (wrong output/crash) observed by a user/tester. Not every defect causes a failure (it may be in unreached code). ACCEPTANCE TESTING is the final validation that the system satisfies business requirements and is ready for release: User Acceptance Testing (UAT) by real users/business, plus Alpha (in-house) and Beta (real users, external) testing. Getting the terminology precise — and knowing UAT's purpose — are staple foundational interview questions.

🔑 Key Points:
  • Error (human mistake) → Defect/Bug (flaw in code) → Failure (wrong behavior at runtime)
  • Not every defect causes a failure (may be in unexecuted code)
  • Acceptance/UAT validates business fitness before release
  • Alpha (in-house) vs Beta (external real users)
🌍 Real-World Example:

A dev misreads 'discount 10%' as 'discount $10' (error), coding the wrong formula (defect); at checkout a customer is overcharged (failure). Before release, business users run UAT to confirm the discount now meets requirements.

🎯 Scenario-Based Interview Question:

Distinguish error, defect, and failure, and explain the purpose of UAT.