Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
An experimental determination of sufficient mutant operators
ACM Transactions on Software Engineering and Methodology (TOSEM)
An experimental evaluation of data flow and mutation testing
Software—Practice & Experience
All-uses vs mutation testing: an experimental comparison of effectiveness
Journal of Systems and Software
Software unit test coverage and adequacy
ACM Computing Surveys (CSUR)
On predicting reliability of modules using code coverage
CASCON '96 Proceedings of the 1996 conference of the Centre for Advanced Studies on Collaborative research
Using fault injection to assess software engineering standards
ISESS '95 Proceedings of the 2nd IEEE Software Engineering Standards Symposium
ISSRE '02 Proceedings of the 13th International Symposium on Software Reliability Engineering
On the Effectiveness of Mutation Analysis as a Black Box Testing Technique
ASWEC '01 Proceedings of the 13th Australian Conference on Software Engineering
An experimental mutation system for Java
ACM SIGSOFT Software Engineering Notes
ACM SIGPLAN Notices
Is mutation an appropriate tool for testing experiments?
Proceedings of the 27th international conference on Software engineering
Evaluation of mutation testing for object-oriented programs
Proceedings of the 28th international conference on Software engineering
The class-level mutants of MuJava
Proceedings of the 2006 international workshop on Automation of software test
Using Mutation Analysis for Assessing and Comparing Testing Coverage Criteria
IEEE Transactions on Software Engineering
Finding Sufficient Mutation Operators via Variable Reduction
MUTATION '06 Proceedings of the Second Workshop on Mutation Analysis
Jumble Java Byte Code to Measure the Effectiveness of Unit Tests
TAICPART-MUTATION '07 Proceedings of the Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION
An Empirical Evaluation of the MuJava Mutation Operators
TAICPART-MUTATION '07 Proceedings of the Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION
Should software testers use mutation analysis to augment a test set?
Journal of Systems and Software
Automated metamorphic testing on the analyses of feature models
Information and Software Technology
Hi-index | 0.00 |
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.