Equivalent Mutants in the Wild: Identifying and Efficiently Suppressing Equivalent Mutants for Java']Java Programs

被引:0
作者
Kushigian, Benjamin [1 ]
Kaufman, Samuel J. [1 ]
Featherman, Ryan [1 ]
Potter, Hannah [1 ]
Madadi, Ardi [1 ]
Just, Rene [1 ]
机构
[1] Univ Washington, Seattle, WA 98195 USA
来源
PROCEEDINGS OF THE 33RD ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2024 | 2024年
基金
美国国家科学基金会;
关键词
Mutation Testing; Equivalent Mutants; Static Analysis; MUTATION;
D O I
10.1145/3650212.3680310
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
The presence of equivalent 'mutants has long been considered a major obstacle to the widespread adoption of mutation analysis and mutation testing. This paper presents a study on the types and prevalence of equivalent mutants in real-world Java programs. We conducted a ground-truth analysis of 1,992 mutants, sampled from 7 open source Java projects. Our analysis identified 215 equivalent mutants, which we grouped based on two criteria that describe why the mutants arc equivalent and how challenging their detection is. From this analysis, we observed that (1) the median equivalent mutant rate across the 7 projects is 2.97'7,, (2) many equivalent mutants are caused by common programming patterns and their detection is not much more complex than structural pattern matching over an abstract syntax tree. Based on the findings of our ground-truth analysis, we developed Equivalent Mutant Suppression (EMS), a technique that comprises 10 efficient and targeted analyses. We evaluated EMS on 19 opensource Java projects, comparing the effectiveness and efficiency of EMS to two variants of Trivial Compiler Equivalence (ICE), the current state of the art in equivalent mutant detection. Additionally, we analyzed all 9,047 equivalent mutants reported by any tool to better understand the types and frequencies of equivalent mutants found. Overall, EMS detects 8,776 equivalent mutants within 325 seconds; ICE detects 2,124 equivalent mutants in 2,938 hours.
引用
收藏
页码:654 / 665
页数:12
相关论文
共 37 条
  • [31] Covering and Uncovering Equivalent Mutants
    Schuler, David
    Zeller, Andreas
    [J]. SOFTWARE TESTING VERIFICATION & RELIABILITY, 2013, 23 (05) : 353 - 374
  • [32] ALETHEIA: Improving the Usability of Static Security Analysis
    Tripp, Omer
    Guarnieri, Salvatore
    Pistoia, Marco
    Aravkin, Aleksandr
    [J]. CCS'14: PROCEEDINGS OF THE 21ST ACM CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2014, : 762 - 774
  • [33] DeepMutation: A Neural Mutation Tool
    Tufano, Michele
    Kimko, Jason
    Wang, Shiya
    Watson, Cody
    Bavota, Gabriele
    Di Penta, Massimiliano
    Poshyvanyk, Denys
    [J]. 2020 ACM/IEEE 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2020), 2020, : 29 - 32
  • [34] Vallee-Rai P. Co, 2010, CASCON First Decade High Impact Papers, P214, DOI 10.1145/1925805.192581854M
  • [35] PIE - A DYNAMIC FAILURE-BASED TECHNIQUE
    VOAS, JM
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1992, 18 (08) : 717 - 727
  • [36] A Study of Equivalent and Stubborn Mutation Operators using Human Analysis of Equivalence
    Yao, Xiangjuan
    Harman, Mark
    Jia, Yue
    [J]. 36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2014), 2014, : 919 - 930
  • [37] Yu-Seung Ma, 2006, 28th International Conference on Software Engineering Proceedings, P827