The fault attack testing is a type of experience based testing technique. The experience based techniques are based on the experiences of software testers in development and analysis. There are various types of experience based techniques. They are: Error guessing, checklist based, exploratory testing and fault attack testing.
In the error guessing technique, the errors which can occur are guessed. The tester guesses the errors which might be introduced during the development of the software.
Checklist based testing:
In checklist based testing, the tester uses the checklist as a guide which reminds him the areas of the application to be tested.
In this testing, the tester plans and designs what to be tested next while execution of the software.
Fault Attack Testing:
The software crashes are focused on trying to involve some failures. The attack will mainly focus on user interface, operating system, and interfacing system, database API’s. Eg: Data exchanges can tend to a failure. The fault attack in software is a technique for improving the total area of the complete test by introducing faults in to the software to test the decisions. During the execution of a code the fault may cause an error which is called as invalid state in its system boundary. Here each new error in the system boundary acts as a fault. There are two types of fault injection.
- Compile time injection
- Run time fault injection
In Compile-time injection technique, the source code is altered to inject simulated faults. One of the method which follows this procedure is called as mutation testing which completely changes the lines of code which contains the faults. An example the technique could be changing b = b + 1 to b = b – 1. The refinement of code mutation is code insertion fault injection which adds code apart from modifying it.
Run-time Fault Injection:
In the run time fault injection, the software is triggered to inject the fault into the running software. There are many numbers of method via in which the fault is injected and that is through numerous physical methods and different triggers like: Time based triggers and interrupt based triggers.
There are different ways to introduce the faults in the system through triggers they are:
- Corruption of memory space: This technique corrupts the RAM, processors and registers.
- System interposition techniques: This is used in the fault propagation from operating system and kernel interfaces etc
- Network level injection: This type of technique is known to the corruption, loss and re-organizing the network packets in the network areas.
Generally fault is a state of software caused by an error. It is a condition which makes the software to fail to perform its requirements.
Check your Understanding:
- What is Fault and Defect?
- What are the techniques used in introducing the fault?