Posts

In software testing, what are Error, Fault, and Failure?

We use the software in day-to-day life, such as at home, work, banking, shopping, etc. However, at times, the software does not work as expected. For instance, a website not loading correctly, an error on a bill, a delay in credit card processing, are typical examples of problems that may happen because of Errors, Faults, and Failures in the software. Today we will discuss the common terminologies that we use when software doesn't work as expected, i.e., Error, Fault, and Failure

  1. Fault: It is a condition that causes the software to fail to perform its required function.
  2. Error: Refers to the difference between Actual Output and Expected output. 
  3. Failure: It is the inability of a system or component to perform the required function according to its specification. 
IEEE Definitions 

  1. Failure: External behavior is incorrect 
  2. Fault: Discrepancy in code that causes a failure. 
  3. Error: Human mistake that caused fault.

 Error: 

A mistake in the code of the product/application is considered and treated as an Error. This is usually caused by the Developer not understanding the requirements well, or missing information. For starters, incorrect loops or arrays may cause errors in the code. 

Example: Let's assume that one of the requirements for the application/product is to accept inputs/numbers from '0' to '100'. However, the code is written such that it accepts values from 1 to 100. This is an Error

Fault: 

A mistake in the logic of the code/application is considered and treated as a Fault. A fault may stay hidden/unseen unless a specific error condition is met/encountered. This is why testers keep on testing the product even after it is released because there is a possibility to find faults/issues which were not caught/revealed in the prior testing. 

Example: The application in the above example is designed to accept values from 1 to 100 but if the user does not enter the '0' value, the error will never reveal itself. This is a Fault

Failure:

An error/fault when showing up and is visible to the user because the application is not giving the desired output is considered and treated as Failure. A failure confirms that the product/application is not ready and is not yielding the results as planned. 

Example: If the user/tester enters the number/value '0', it will be not be accepted by the application/product. This will contradict/not match with the actual requirement which was to accept values from 0 to 100. This is a Failure.

Post a Comment