A fault can be understood to be a deviation in the expected behavior or a malfunction. Faults may occur sue to a variety of reasons that include software bugs, hardware failure, operator error or network problems.
Faults could be classified into three categories:
1. Transient faults Transient faults may occur and then disappear. For instance, a network message does not reach the destination. When the same message is retransmitted it does.
2. Intermittent faults Intermittent faults are faults that occur and vanish again to re-occur. These faults are faults that can be the most annoying at times. Example of this may be a loose connection.
3. Permanent faults This is a type of failure that is persistent. It persists until the faulty component is removed. Examples include software bugs, hard disk crashes etc.
Fault tolerance can be understood as the ability of a system to get back to normal in case of an unexpected software or hardware failure. There are numerous levels of fault tolerance, the lowest one being the ability of continuing operations in event of power failure.