I think we have been using a few words almost synonymously. It is time to look at what are the differences between these words. We look at now how to use the words: errors, fault and failure.
The errors is basically human action, is a result of human action. In the instrumentation area we use the word error for instrumental errors, whereas we use the word mistake for the human actions. But in software engineering we make use of the word error for the human actions. Most of these errors, are human actions, lead to incorrect results.
But these errors, when a human being commits a mistake, it manifests itself as a software fault. So, the fault is basically a manifestation of error as a consequence of the error. And now, when there is a fault in the software, when I operate the software, the system fails.
Now, let us try to understand what we mean by failure. I am having this laser pointer, when I try to point out to the screen it must show there a dot. This is why I expect. This is the expectance of all of us. And if it does not show, then I say this has failed, my laser pointer has failed. That means: what is failure. There is a certain behaviour from a software, or an instrument, or any system. And if it does not perform according to that expectation , then we will say the system has failed. So, basically the failure is a result of a fault. So, again. The fault shows off as a failure, while operating the software.