dc.description.abstract |
As software testing becomes a more established discipline, the need for quality assurance of software test suites arises. It has been decades since mutation testing was rst introduced into the literature for this purpose. In this thesis, we investigate mutation testing of concurrent Java programs. We have developed a publicly available mutation testing tool, \Mutanticide" [38], for this purpose. Additionally, we propose a new mutation operator, and use it in combination with previously introduced 14 mutation operators [9]. We describe each of these mutation operators and potential bugs they introduce into the system. Using a bytecode instrumentation tool [4], we explain how to discover mutation candidates and create mutants of a program. Experiments on varying size of software show that programs which have test suites focusing on concurrency catch more multi-threaded bugs. Also, our new operator, RNNA, is proven by selective mutation to be e cient and e ective as it produces low number of mutants with a high percentage of dead mutants. In addition, RNNA ends up in the su cient subset of concurrent mutation operators, too. Another mutation operator that we propose in this study, RSR, targets programs making use of the Java library java.util.concurrent. This operator is the rst step of our work to develop more mutation operators regarding the aforesaid library. |
|