We, humans, are notoriously imprecise. Do you always agree with what someone else calls an anomaly, a bug, a defect, a deficiency, an error, an exception, a fault, a problem, or an issue? When was the last time you matter-of-factly said:
- That's not a bug.
- That's a "feature".
- That'll be an enhancement (or change request).
- We need to reset the customer's expectations.
That a reported problem may meet with any (or all) of these responses, leads us to consider the need for more concise operational definitions. I originally explored that here, and formalized into into an e-paper, "What is a bug?"
And after considerable literature review, analysis, and refinement of my thoughts, I arrived at the following definitions:
Maybe now I can get a normal night's sleep.
- bug
- any deviation between the customer's expectation, the specification, and/or implementation.
- error
- any observed event or detected deviation between the specification and the implementation.
- defect
- a deviation between the specification and the implementation, detected after release to the customer.
