Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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
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


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.