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?
1 Answer
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.
-
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– John VCommented Aug 31, 2012 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 ♦Commented Aug 31, 2012 at 19:25
-
Based on your definitions, I would say that the mistake of analyst causes the fault in the specification.– John VCommented Aug 31, 2012 at 23:17