EqMutDetect — A tool for equivalent mutant detection in embedded systems
Simona Luminita Nica, Franz Wotawa · Workshop on Intelligent Solutions in Embedded Systems · 2012
Removing faults in the software of embedded systems, after deployment, is at least expensive because of the required actions like calling back cars to workshops in order to perform a software update. Therefore verification and validation techniques are especially important in the embedded system domain. Mutation testing is a method for evaluating test suites of programs via injecting faults and checking whether there exists a test case that catches the induced misbehavior. An important problem in mutation testing is the detection of equivalent mutants, i.e., injected faults that lead to exactly the same behavior. In case equivalent mutants cannot be distinguished, the evaluation result of a test suite, measured as mutation score, is wrong. Therefore, we focus on equivalent mutant detection in this paper. In particular we present a method that relies on a constraint representation of a program and its mutant, and a constraint solver for deciding whether the mutant is equivalent to its corresponding program or not. The introduced approach is based on distinguishing test cases, i.e., test inputs that force a program and its mutant to behave in a different way. Beside the foundations of the approach, we discuss the algorithms and first empirical results. Because of the current restrictions of our approach to basic data types like integers and simple control structures the approach is well suited to the embedded systems domain where usually these restrictions apply.