Following steps are used to execute mutation testing:
- Faults are introduced to the actual source code in program called mutants by creating different versions of the program each mutant should contain a single fault and the goal is to fail these mutant versions
- Test cases are applied to both original and mutant program, it should be adequate to find the defect or fault in the program.
- Comparing the results of both original and mutant program.
- If the original and mutant program’s results are different then the mutant is killed.
- If both the program generate same output then the mutant is kept alive. In these cases more effective test cases need to be created to kill mutants.
The advantages of Mutation testing
- It is powerful way to reach the high coverage of the source program.
- This testing is capable of testing the mutant program also.
- This testing brings a good level of error detection to the software developer. Those faults can be identified which have missed from the developer’s attention.
- This testing has the capacity to detect all the faults in the program and removes all the ambiguities in the source code.
- Customers are benefited by getting the most reliable and stable system by this testing.
The disadvantages of the Mutation Testing
- Mutation testing is very expensive and time consuming as there are mutant programs to be created and tested with the original program.
- Testing cannot be done without an automation tool.
- Each mutant program will have the same number of test cases as the original program has which makes the tester to test large number to mutant programs.
- It is not well suited for black box testing.
- What is Mutation Testing?
- Explain some examples of mutation testing?
- What are the characteristics of mutation testing?
- What is the difference between mutation testing and Happy testing?