Skip to Main Content
Mutation testing improves a system's bug-detection capability. It also helps improve coverage by exposing software or code areas that other types of testing might not expose. However, the value of mutation testing is often bypassed because it consumes extra resources from already limited ones. The author presents an automatic technique to generate valid and mutant test cases. In traditional mutation testing, one or more parameters in the specification or the code are changed, and the technique finds the test cases that can detect those mutations. In the author's approach, the test cases generated by a GUI model are mutated and the mutants are then applied the model to test its capability to kill the mutant test cases by rejecting them. A robust model is expected to differentiate between a valid and invalid event sequence. The author also describes an automatic execution and verification technique to evaluate the test cases rejected by the GUI model and to calculate coverage based on their number relative to the total number of test cases. Experimental results indicate the value of this mutation process and its potential for improving software test coverage automatically.