Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Possible Duplicate:
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?

share|improve this question

migrated from academia.stackexchange.com Jan 22 '13 at 3:36

This question came from our site for academics and those enrolled in higher education.

marked as duplicate by gnat, StuperUser, Mark Booth, Thomas Owens Jan 22 '13 at 10:59

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

I strongly suspect the answer is nothing, except in papers that explicitly invoke IEEE610.12-90. –  JeffE Jan 20 '13 at 22:31
In IEEE610.12-90's definitions the key word that differentiates an error from a fault is "computed". An error is an incorrect result of a completed computation, a fault is an incorrect step that prevented computation from completing (e.g. a syntax error). –  Yannis Rizos Jan 21 '13 at 4:42
The answer is "it depends on whose vocabulary you are using" and this question sure is not a duplicate of "Difference between defect and bug in testing". –  David Tonhofer Sep 7 '14 at 8:56

2 Answers 2

According to Fundamental Concepts of Dependability:

A system failure is an event that occurs when the delivered service deviates from correct service. A system may fail either because it does not comply with the specification, or because the specification did not adequately describe its function. An error is that part of the system state that may cause a subsequent failure: a failure occurs when an error reaches the service interface and alters the service. A fault is the adjudged or hypothesized cause of an error.

I understand defect as just another name for fault.

Bug is confusing and can represent a fault or a failure depending on the context.

share|improve this answer

With reference to the definitions used in the linked article, an error is not the result of a fault, but potentially the cause - if the error is outside of the tolerance of the system. Most systems dealing with real data have some degree of error, but are designed to tolerate them.

share|improve this answer