The terms: error, defect, bug, and failure are closely related in software development. In a nutshell: An error leads to a defect, and when these defects go undetected, they lead to failure.
An error is a mistake made by a developer in the code. Its main causes are:
- Negligence: Carelessness often leads to errors
- Miscommunication: An unclear feature specification or its improper interpretation by developers could lead to slips.
- Inexperience: Inexperienced developers often miss out on essential details, leading to faults down the line.
- Complexity: Intricate algorithms can cause developers to make mistakes in their coding logic.
- Defect & Bug
A system is said to have a defect is when its expected and actual behavior differ. A defect, when found by a tester or end-user, is called a bug. Its main causes are:
- Missing test cases
- Test cases not executed by the tester
- Improper execution of test cases
- Code changed after testing
- When one or more bugs cause a significant loss of functionality, a failure is said to have occurred.