Selective mutation testing for concurrent code

M Gligoric, L Zhang, C Pereira, G Pokam - Proceedings of the 2013 …, 2013 - dl.acm.org
Proceedings of the 2013 international symposium on software testing and analysis, 2013dl.acm.org
Concurrent code is becoming increasingly important with the advent of multi-cores, but
testing concurrent code is challenging. Researchers are developing new testing techniques
and test suites for concurrent code, but evaluating these techniques and test suites often
uses a small number of real or manually seeded bugs. Mutation testing allows creating a
large number of buggy programs to evaluate test suites. However, performing mutation
testing is expensive even for sequential code, and the cost is higher for concurrent code …
Concurrent code is becoming increasingly important with the advent of multi-cores, but testing concurrent code is challenging. Researchers are developing new testing techniques and test suites for concurrent code, but evaluating these techniques and test suites often uses a small number of real or manually seeded bugs.
Mutation testing allows creating a large number of buggy programs to evaluate test suites. However, performing mutation testing is expensive even for sequential code, and the cost is higher for concurrent code where each test has to be executed for many (possibly all) thread schedules. The most widely used technique to speed up mutation testing is selective mutation, which reduces the number of mutants by applying only a subset of mutation operators such that test suites that kill all mutants generated by this subset also kill (almost) all mutants generated by all mutation operators. To date, selective mutation has been used only for sequential mutation operators.
This paper explores selective mutation for concurrent mutation operators. Our results identify several sets of concurrent mutation operators that can effectively reduce the number of mutants, show that operator-based selection is slightly better than random mutant selection, and show that sequential and concurrent mutation operators are independent, demonstrating the importance of studying concurrent mutation operators.
ACM Digital Library