Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2610384.2610388acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

Efficient mutation analysis by propagating and partitioning infected execution states

Published: 21 July 2014 Publication History

Abstract

Mutation analysis evaluates a testing technique by measur- ing how well it detects seeded faults (mutants). Mutation analysis is hampered by inherent scalability problems — a test suite is executed for each of a large number of mutants. Despite numerous optimizations presented in the literature, this scalability issue remains, and this is one of the reasons why mutation analysis is hardly used in practice. Whereas most previous optimizations attempted to stati- cally reduce the number of executions or their computational overhead, this paper exploits information available only at run time to further reduce the number of executions. First, state infection conditions can reveal — with a single test execution of the unmutated program — which mutants would lead to a different state, thus avoiding unnecessary test executions. Second, determining whether an infected execution state propagates can further reduce the number of executions. Mutants that are embedded in compound expressions may infect the state locally without affecting the outcome of the compound expression. Third, those mutants that do infect the state can be partitioned based on the resulting infected state — if two mutants lead to the same infected state, only one needs to be executed as the result of the other can be inferred. We have implemented these optimizations in the Major mu- tation framework and empirically evaluated them on 14 open source programs. The optimizations reduced the mutation analysis time by 40% on average.

References

[1]
A. T. Acree. On Mutation. PhD thesis, Georgia Institute of Technology, 1980.
[2]
K. Adamopoulos, M. Harman, and R. M. Hierons. How to overcome the equivalent mutant problem and achieve tailored selective mutation using co-evolution. In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO), volume 3103 of LNCS, pages 1338–1349, 2004.
[3]
D. Baldwin and F. G. Sayward. Heuristics for determining equivalence of program mutations. Technical Report 276, Yale University, 1979.
[4]
T. A. Budd. Mutation Analysis of Program Test Data. Phd thesis, Yale University, 1980.
[5]
R. A. DeMillo and A. J. Offutt. Constraint-based automatic test data generation. IEEE Transactions on Software Engineering (TSE), 17(9):900–910, 1991.
[6]
V. N. Fleyshgakker and S. N. Weiss. Efficient mutation analysis: A new approach. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA), pages 185–195, 1994.
[7]
G. Fraser and A. Arcuri. EvoSuite: Automatic test suite generation for object-oriented software. In Proceedings of the Joint Meeting of the European Software Engineering Conference and the Symposium on the Foundations of Software Engineering (ESEC/FSE), pages 416–419, 2011.
[8]
G. Fraser and A. Arcuri. Sound empirical evidence in software testing. In Proceedings of the International Conference on Software Engineering (ICSE), pages 178–188, 2012.
[9]
G. Fraser and A. Arcuri. Efficient mutation testing using whole test suite generation. Empirical Software Engineering (ESEM), 2014. To appear.
[10]
G. Fraser and A. Zeller. Mutation-driven generation of unit tests and oracles. IEEE Transactions on Software Engineering (TSE), 28(2):278–292, 2012.
[11]
M. Hampton and S. Petithomme. Leveraging a commercial mutation analysis tool for research. In Testing: Academic and Industrial Conference Practice and Research Techniques (TAIC PART), pages 203–209, 2007.
[12]
R. M. Hierons, M. Harman, and S. Danicic. Using program slicing to assist in the detection of equivalent mutants. Software Testing, Verification and Reliability (JSTVR), 9(4):233–262, 1999.
[13]
W. E. Howden. Weak mutation testing and completeness of test sets. IEEE Transactions on Software Engineering (TSE), 8(4):371–379, 1982.
[14]
W. Huang, A. Milanova, W. Dietl, and M. D. Ernst. ReIm & ReImInfer: Checking and inference of reference immutability and method purity. In Proceedings of Object-Oriented Programming, Systems, Languages & Applications, pages 879––896, 2012.
[15]
Y. Jia and M. Harman. Higher order mutation testing. Information and Software Technology (IST), 51(10):1379–1393, 2009.
[16]
R. Just. The Major mutation framework: Efficient and scalable mutation analysis for Java. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA), 2014. To appear.
[17]
R. Just, M. D. Ernst, and G. Fraser. Using state infection conditions to detect equivalent mutants and speed up mutation analysis. In Proceedings of the Dagstuhl Seminar 13021: Symbolic Methods in Testing, volume abs/1303.2784, 2013.
[18]
R. Just, G. M. Kapfhammer, and F. Schweiggert. Using conditional mutation to increase the efficiency of mutation analysis. In Proceedings of the International Workshop on Automation of Software Test (AST), pages 50–56, 2011.
[19]
R. Just, G. M. Kapfhammer, and F. Schweiggert. Using non-redundant mutation operators and test suite prioritization to achieve efficient and scalable mutation analysis. In Proceedings of the International Symposium on Software Reliability Engineering (ISSRE), pages 11–20, 2012.
[20]
R. Just and F. Schweiggert. Higher accuracy and lower runtime: Efficient mutation analysis using non-redundant mutation operators. Software Testing, Verification and Reliability (JSTVR), 2014. To appear.
[21]
R. Just, F. Schweiggert, and G. M. Kapfhammer. MAJOR: An efficient and extensible tool for mutation analysis in a Java compiler. In Proceedings of the International Conference on Automated Software Engineering (ASE), pages 612–615, 2011.
[22]
A. J. Offutt. Investigations of the software testing coupling effect. ACM Transactions on Software Engineering and Methodology (TOSEM), 1(1):5–20, 1992.
[23]
A. J. Offutt and W. M. Craft. Using compiler optimization techniques to detect equivalent mutants. Software Testing, Verification and Reliability (JSTVR), 4(3):131–154, 1994.
[24]
A. J. Offutt, Y.-S. Ma, and Y.-R. Kwon. An Experimental Mutation System for Java. ACM Software Engineering Notes, 29(5):1–4, September 2004.
[25]
A. J. Offutt, G. Rothermel, and C. Zapf. An experimental evaluation of selective mutation. In Proceedings of the International Conference on Software Engineering (ICSE), pages 100–107, 1993.
[26]
M. Papadakis and N. Malevris. Automatic mutation test case generation via dynamic symbolic execution. In Proceedings of the International Symposium on Software Reliability Engineering (ISSRE), pages 121–130, 2010.
[27]
D. Schuler, V. Dallmeier, and A. Zeller. Efficient mutation testing by checking invariant violations. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA), pages 69–80, 2009.
[28]
D. Schuler and A. Zeller. Javalanche: Efficient mutation testing for Java. In Proceedings of the Joint Meeting of the European Software Engineering Conference and the Symposium on the Foundations of Software Engineering (ESEC/FSE), pages 297–298, 2009.
[29]
D. Schuler and A. Zeller. (Un-)covering equivalent mutants. In Proceedings of the International Conference on Software Testing, Verification and Validation (ICST), pages 45–54, 2010.
[30]
A. Siami Namin, J. H. Andrews, and D. J. Murdoch. Sufficient mutation operators for measuring test effectiveness. In Proceedings of the International Conference on Software Engineering (ICSE), pages 351–360, 2008.
[31]
R. H. Untch, A. J. Offutt, and M. J. Harrold. Mutation analysis using mutant schemata. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA), pages 139–148, 1993.
[32]
J. M. Voas. PIE: A dynamic failure-based technique. IEEE Transactions on Software Engineering (TSE), 18(8):717–727, 1992.
[33]
L. Zhang, D. Marinov, and S. Khurshid. Faster mutation testing inspired by test prioritization and reduction. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA), pages 235–245, 2013.
[34]
L. Zhang, T. Xie, L. Zhang, N. Tillmann, J. de Halleux, and H. Mei. Test generation via dynamic symbolic execution for mutation testing. In Proceedings of the International Conference on Software Maintenance (ICSM), pages 1–10, 2010.

Cited By

View all
  • (2024)EffFix: Efficient and Effective Repair of Pointer Manipulating ProgramsACM Transactions on Software Engineering and Methodology10.1145/370531034:3(1-27)Online publication date: 21-Nov-2024
  • (2024)When Automated Program Repair Meets Regression Testing—An Extensive Study on Two Million PatchesACM Transactions on Software Engineering and Methodology10.1145/367245033:7(1-23)Online publication date: 13-Jun-2024
  • (2024)Ripples of a Mutation — An Empirical Study of Propagation Effects in Mutation TestingProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639179(1-13)Online publication date: 20-May-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ISSTA 2014: Proceedings of the 2014 International Symposium on Software Testing and Analysis
July 2014
460 pages
ISBN:9781450326452
DOI:10.1145/2610384
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 July 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Mutation analysis
  2. dynamic analysis
  3. software testing

Qualifiers

  • Research-article

Conference

ISSTA '14
Sponsor:

Acceptance Rates

Overall Acceptance Rate 58 of 213 submissions, 27%

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)23
  • Downloads (Last 6 weeks)0
Reflects downloads up to 20 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)EffFix: Efficient and Effective Repair of Pointer Manipulating ProgramsACM Transactions on Software Engineering and Methodology10.1145/370531034:3(1-27)Online publication date: 21-Nov-2024
  • (2024)When Automated Program Repair Meets Regression Testing—An Extensive Study on Two Million PatchesACM Transactions on Software Engineering and Methodology10.1145/367245033:7(1-23)Online publication date: 13-Jun-2024
  • (2024)Ripples of a Mutation — An Empirical Study of Propagation Effects in Mutation TestingProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639179(1-13)Online publication date: 20-May-2024
  • (2024)Optimizing Mutation-Based Fault Localization Through Contribution-Based Test Case ReductionInternational Journal of Software Engineering and Knowledge Engineering10.1142/S021819402450027X34:10(1537-1564)Online publication date: 5-Jul-2024
  • (2024)Accelerating Patch Validation for Program Repair With Interception-Based Execution SchedulingIEEE Transactions on Software Engineering10.1109/TSE.2024.335996950:3(618-635)Online publication date: Mar-2024
  • (2024)Delta4Ms: Improving mutation‐based fault localization by eliminating mutant biasSoftware Testing, Verification and Reliability10.1002/stvr.187234:4Online publication date: 16-Jan-2024
  • (2023)Systematic assessment of fuzzers using mutation analysisProceedings of the 32nd USENIX Conference on Security Symposium10.5555/3620237.3620491(4535-4552)Online publication date: 9-Aug-2023
  • (2023)Guiding Greybox Fuzzing with Mutation TestingProceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3597926.3598107(929-941)Online publication date: 12-Jul-2023
  • (2023)Batching Non-Conflicting Mutations for Efficient, Safe, Parallel Mutation Analysis in Rust2023 IEEE Conference on Software Testing, Verification and Validation (ICST)10.1109/ICST57152.2023.00014(49-59)Online publication date: Apr-2023
  • (2023)ExpressAPR: Efficient Patch Validation for Java Automated Program Repair Systems2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE56229.2023.00012(2038-2041)Online publication date: 11-Sep-2023
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media