Fault Injection

What is Fault Injection?

fault injection

Fault Injection is a technique, carried out in the software testing, which involves the injection or the introduction of the faults, in the software application, in order to measure the robustness of the software. The fault in the software application, may be introduced, by altering its programming or source code.

In the diagram, it may be seen, that the software programming code consists of the addition of the numbers, in the series. After applying the technique of fault injection, errors are being introduced in the programming code, by replacing a few of the number, with the different & unknown inputs.

It is a simple testing technique, which emphasizes on the robustness and stress feature of the software product. This type of testing ensures the 100% coverage of the programming/ source code under the test.

Its need

In order to make the software product bug free, testers and developers examines all aspects of the software product, to achieve maximum quality. The coverage of the different aspects of the software, covers its source code, also.

The evaluation of the source code, is carried out, and it may results into the identification of the bugs, which are subsequently, removed from the source code. This leads to gain in developer's or tester's confidence, towards achieving software's quality.

Perhaps, making source code 100% bug free, is a moment of joy, but it may not guarantee the coverage of the complete source code. It might be possible, that some of the codes are left unseen and untouched, which may contain potential bugs, and is sufficient to degrade the quality of the software product. This situation arises the need of fault injection technique, which ensures the 100% coverage of the code.


The task of fault injection in the software application may be performed, mainly through following two approaches.

Compile Time Fault Injection

This method involves the fault(s) introduction in the source code, by applying modifications in it, in order to generate desired fault in the software application.

Run Time Fault Injection

As the name suggests, this method of fault injection, is applied during the running time of the software application. The faults are being injected in the running applications, with the help of the software triggers such as time-based triggers and interrupt-based triggers.

Key Points

  • A testing technique that works on the methodology of bringing changes to the source code, in order to generate fault in the software application.
  • Concerns with robustness and stress quality.
  • Ensures 100% coverage of the code, under the test.
  • It is a simple activity, that requires minimal or no effort, to add up a few lines of code, to the program.
  • Responsible for error handling and exceptions.
  • Numerous tools are available in the market, with the help of which fault can be injected in the programming code. Few of them are
    • Xception
    • beStorm
    • Holodeck
    • Grid-FIT
    • Orchestra
    • ExhaustiF
    • The Mu Service Analyzer