I'm taking a grad class on software testing and we spent a whole class on the difference between faults, errors, and failures. I was dissatisfied by the definition of a software fault in testing. What's your definition?
Fault is a defect within the system • Examples: – Software bug – Random hardware fault – Memory bit “stuck” – Omission or commission fault in data transfer – Etc.
Fault : It is a condition that causes the software to fail to perform its required function. Error : Refers to difference between Actual Output and Expected output. Failure : It is the inability of a system or component to perform required function according to its specification. IEEE Definitions.
Software faults are most often caused by design faults. Design faults occur when a designer, (in this case a programmer,) either misunderstands a specification or simply makes a mistake.
Software Error means a reproducible defect or combination thereof in the Software that results in a failure of the Software when used in accordance with the Documentation.
You might be interested in this SE Radio podcast where iirc, they're described as:
A failure occurs when the observed behaviour differs from the expected one. Note that the reference is the expected behaviour, not the specification, since even the spec could be false.
An error is the part of the system state which may lead to a failure.
A fault is the cause of an error. A software fault lies in software, a hardware fault lies in hardware.
You can find a deep overview of dependability concepts in Dependabilty and its threats: a taxonomy, by Algirdas Avižienis, Jean-Claude Laprie & Brian Randell.
According to the ISQTB a fault is a defect. There definition of a defect is as follows:
defect: A flaw in a component or system that can cause the component or system to fail to perform its required function, e.g. an incorrect statement or data definition. A defect, if encountered during execution, may cause a failure of the component or system.
failure: Deviation of the component or system from its expected delivery, service or result.
Basically, defects, bugs and errors are the same.
In reality, it doesn't matter. Academic papers tend to be all over the map with the terminology they use. In industry there is more certainly not an accepted definition of each. Moreover, no one in industry cares what the difference might be. Fault, error, failure, bug, they are all treated about the same.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With