Efficient mutation testing of multithreaded code. (27th March 2012) - Gligoric, Milos; Jagannath, Vilas; Luo, Qingzhou; Marinov, Darko
SUMMARY: Mutation testing is a well‐established method for measuring and improving the quality of test suites. A major cost of mutation testing is the time required to execute the test suite on all the mutants. This cost is even greater when the system under test is multithreaded: not only are test cases from the test suite executed on many mutants but also each test case is executed—or more precisely, explored—for multiple possible thread schedules. This paper introduces a general framework for efficient exploration that can reduce the time for mutation testing of multithreaded code. The paper presents five techniques (four optimizations and one heuristic) that are implemented in a tool called MuTMuT within the general framework. Evaluation of MuTMuT on mutation testing of 12 multithreaded programs shows that it can substantially reduce the time required for mutation testing of multithreaded code.Copyright © 2012 John Wiley & Sons, Ltd. Abstract : Mutation testing of multithreaded code is highly time intensive: for each mutant, every test case may be explored for multiple possible thread schedules. This paper introduces a general framework for efficient exploration that can reduce the time for mutation testing of multithreaded code. The paper presents five techniques within the framework that are implemented in a tool calledMuTMuT. Evaluation of MuTMuT on mutation testing of 12 multithreaded programs shows that it indeed substantially reduces the time required.