Software Errors
Failure, fault and error
- Failure
- Observable incorrect behaviour of a program. Related to the behaviour of the program rather than its code.
- Fault (bug)
- Necessary (not sufficient) condition for the occurrence of a failure. Related to the code.
- Error
- A mistake usually made by people. Cause of a fault.



9 Causes of Software Errors
- Faulty requirements definition (incorrect, missing, incomplete, unnecessary requirements)
- Client-developer communication failures
- Deliberate deviations from software requirements (improper reuse, omission due to time pressure, gold-plating)
- Logical design errors (problems with algorithms, sequencing of actions, boundary conditions, missing states, how to handle “illegal” input)
- Coding errors
- Non-compliance with documentation and coding instructions (more difficult to deal with team attrition and inspections)
- Shortcomings of the testing process
- Procedure errors (workflow and user interface errors)
- Documentation errors
