Take the 2-minute tour ×

According to ISTQB (and few more sources + wiki ), a defect/bug is the actual cause of error in software, e.g. incorrect statement, logical or semantic error. The actual definion is: a flaw in the system or component that could lead to the failure. But what about specification bugs? I cannot relate to it. Specification bugs are quite common but if the programmer implements software according to spec with a bug, it is not his fault (IMHO). But then the definion could not apply and I am sure it must have been addressed somehow. Could you help me to understand this?

share|improve this question

1 Answer 1

up vote 3 down vote accepted

If you're looking for formal terminology, I'd forget the term "bug" all together. Only consider mistake, error, fault, and failure. Based on IEEE610.12-90, the definitions are (as provided in the Software Engineering Body of Knowledge:

  • Mistake: A human action that produces an incorrect result.
  • Fault: An incorrect step, process, or data definition in a computer program
  • Error: A difference...between a computed result and the correct result
  • Failure: The [incorrect] result of a fault

Your "bug" is actually what is formally called a fault. However, that fault was injected by a mistake in an earlier process. In your example, the specification contained a mistake.

share|improve this answer
Thanks. Actually, according to dependability taxonomy, only Error, Fault, and Failure are considered. Defect=fault. Quoting from document I just found: The result of an error by a specifier’ leads to a failure to describe a function, that in turn results in a fault in the written specification, e.g. incomplete description of the function. The implemented system therefore does not incorporate the missing (sub-)function. When the input data are such that the service corresponding to the missing function should be delivered, the actual service delivered will be different from expec –  user970696 Aug 31 '12 at 16:48
@user970696 I'm not familiar with the dependability taxonomy at all. I tend to use IEEE definitions when using things formally, just because that's what I'm familiar with. –  Thomas Owens Aug 31 '12 at 19:25
Based on your definitions, I would say that the mistake of analyst causes the fault in the specification. –  user970696 Aug 31 '12 at 23:17

Your Answer


