Error – defect in the human thought process made while trying to
understand given information, solve problems, or to use methods and
tools. In the context of software requirements specifications, an error
is a basic misconception of the actual needs of a user or customer.
Fault – concrete manifestation of an error within the software. One
error may cause several faults, and various errors may cause identical
faults.
Failure – departure of the operational software system behavior from
user expected requirements. A particular failure may be caused by
several faults and some faults may never cause a failure.
IEEE Std 610.12-1990, IEEE Standard Glossary of Software
Engineering Terminology, 1990.
A systematic literature review to identify and classify software
requirement errors. Gursimran Singh Walia, Jeffrey C. Carver.
Information and Software Technology, 2009.
El 10/07/2013 8:47, Camillo Bruni escribió:
On 2013-07-10, at 13:32, Tudor Girba <tu...@tudorgirba.com> wrote:
Precisely. There is a huge difference between invalidating a known contract
(i.e., failure) and raising an unexpected error (i.e., error).
In which sense?
As a programmer I have to tackle them both the same way: start debugging.
I really do not see the difference. In both cases the code does not behave as
expected.
One might even say that there is a global contract that the code does not raise
exceptions.
Tackling the failures first is purely a habit induced by the existing system
that errors are worse than failures
.