Difference between defect and bug in testing
In computer science technical writing, especially in software engineering, what's the difference between fault, error and defect?
I want to quote an answer on Stack OverFlow by Daniel Joseph:
To quote the Software Engineering Body of Knowledge
Typically, where the word “defect” is used, it refers to a “fault” as defined below. However, different cultures and standards may use somewhat different meanings for these terms, which have led to attempts to define them. Partial definitions taken from standard (IEEE610.12-90) are:
Error: “A difference…between a computed result and the correct result”
Fault: “An incorrect step, process, or data definition in a computer program”
Failure: “The [incorrect] result of a fault”
Mistake: “A human action that produces an incorrect result”
Based on my understanding of above definition, error is the result of fault, i.e., failure. Could someone explain more clearly?