The testing what we have learned till now is having same kind of objective, i.e. to find the hidden defects in under develop the system. The intention behind mutation testing is quite different. Mutation testing means intentionally changing the working code and try to find entered defect using existing test cases. As we are discussing changing code means it is white box testing and it is widely used in Unit level testing. Although we are making changes to identify the effectiveness of test cases but it should be small and should not affect the overall objective of the underdeveloped system. Sometimes it also called as Fault Based testing method, as we are trying to find the intentionally entered defects.
Steps involved in Mutation Testing:
- Working code is changed and it called mutation. Every single change in code and our goal is to identify that added defect using existing test cases.
- Existing test cases are executed on the original program and mutated program.
- Test results of the original program and muted program need to compare.
- Results of the original program and muted programs are matched means your test cases are not finding the defects in muted program. So, you need to make some tweaks in your test cases and make them effective enough so that same test cases can find the muted defect.
- Results of the original program and muted program are different and test cases related to muted modules are failed, that means test cases developed are effective.
- Program in a way to find faults
- Test case developed in effective way
- Any lope holes in test data are detected
- System quality improvement
- Complex mutation required good technical knowledge
- Time-consuming process and sometimes expensive as well
- Programming knowledge is mandatory for this method