1 | Benjamin Hatfield Smith and Laurie Williams On Guiding the Augmentation of an Automated Test Suite via Mutation Analysis Empirical Software Engineering, 14(3), 2009. |
|
| Abstract: Mutation testing has traditionally been used as a defect injection technique to assess the effectiveness of a test suite as represented by a "mutation score." Recently, mutation testing tools have become more efficient, and industrial usage of mutation analysis is experiencing growth. Mutation analysis entails adding or modifying test cases until the test suite is sufficient to detect as many mutants as possible and the mutation score is satisfactory. The augmented test suite resulting from mutation analysis may reveal latent faults and provides a stronger test suite to detect future errors which might be injected. Software engineers often look for guidance on how to augment their test suite using information provided by line and/or branch coverage tools. As the use of mutation analysis grows, software engineers will want to know how the emerging technique compares with and/or complements coverage analysis for guiding the augmentation of an automated test suite. Additionally, software engineers can benefit from an enhanced understanding of efficient mutation analysis techniques. To address these needs for additional information about mutation analysis, we conducted an empirical study of the use of mutation analysis on two open source projects. Our results indicate that a focused effort on increasing mutation score leads to a corresponding increase in line and branch coverage to the point that line coverage, branch coverage and mutation score reach a maximum but leave some types of code structures uncovered. Mutation analysis guides the creation of additional "common programmer error" tests beyond those written to increase line and branch coverage. We also found that 74% of our chosen set of mutation operators is useful, on average, for producing new tests. The remaining 26% of mutation operators did not produce new test cases because their mutants were immediately detected by the initial test suite, indirectly detected by test suites we added to detect other mutants, or were not able to be detected by any test. |
| @ARTICLE{SmithW09a,
author = {Benjamin Hatfield Smith and Laurie Williams},
title = {On Guiding the Augmentation of an Automated Test Suite via Mutation Analysis},
journal = {Empirical Software Engineering},
year = {2009},
month = {},
volume = {14},
number = {3},
pages = {341–369}
} |
2 | Benjamin Hatfield Smith and Laurie Williams Should Software Testers Use Mutation Analysis to Augment a Test Set? Journal of Systems and Software, (), 2009. |
|
| Abstract: Mutation testing has historically been used to assess the fault-finding effectiveness of a test suite or other verification technique. Mutation analysis, rather, entails augmenting a test suite to detect all killable mutants. Concerns about the time efficiency of mutation analysis may prohibit its widespread, practical use. The goal of our research is to assess the effectiveness of the mutation analysis process when used by software testers to augment a test suite to obtain higher statement coverage scores. We conducted two empirical studies and have shown that mutation analysis can be used by software testers to effectively produce new test cases and to improve statement coverage scores in a feasible amount of time. Additionally, we find that our user study participants view mutation analysis as an effective but relatively expensive technique for writing new test cases. Finally, we have shown that the choice of mutation tool and operator set can play an important role in determining how efficient mutation analysis is for producing new test cases. |
| @ARTICLE{SmithW09b,
author = {Benjamin Hatfield Smith and Laurie Williams},
title = {Should Software Testers Use Mutation Analysis to Augment a Test Set?},
journal = {Journal of Systems and Software},
year = {2009},
month = {},
volume = {},
number = {},
pages = {To appear}
} |
3 | Benjamin Hatfield Smith and Laurie Williams An Empirical Evaluation of the MuJava Mutation Operators Proceedings of the 3rd Workshop on Mutation Analysis (MUTATION'07)Windsor, UK, 10-14 September 2007. |
|
| Abstract: Mutation testing is used to assess the fault-finding effectiveness of a test suite. Information provided by mutation testing can also be used to guide the creation of additional valuable tests and/or to reveal faults in the implementation code. However, concerns about the time efficiency of mutation testing may prohibit its widespread, practical use. We conducted an empirical study using the MuClipse automated mutation testing plug-in for Eclipse on the back end of a small web-based application. The first objective of our study was to categorize the behavior of the mutants generated by selected mutation operators during successive attempts to kill the mutants. The results of this categorization can be used to inform developers in their mutant operator selection to improve the efficiency and effectiveness of their mutation testing. The second outcome of our study identified patterns in the implementation code that remained untested after attempting to kill all mutants. |
| @INPROCEEDINGS{SmithW07,
author = {Benjamin Hatfield Smith and Laurie Williams},
title = {An Empirical Evaluation of the MuJava Mutation Operators},
booktitle = {Proceedings of the 3rd Workshop on Mutation Analysis (MUTATION'07)},
year = {2007},
address = {Windsor, UK},
month = {10-14 September},
pages = {193-202}
} |