Mutation Testing in Evolving Systems: Studying the Relevance of Mutants to Code Evolution

被引:9
作者
Ojdanic, Milos [1 ]
Soremekun, Ezekiel [1 ]
Degiovanni, Renzo [1 ]
Papadakis, Mike [1 ]
Le Traon, Yves [1 ]
机构
[1] Univ Luxembourg, SnT Interdisciplinary Ctr Secur Reliabil & Trust, SERVAL Secur Design & Validat Res Grp, Kirchberg Campus,Block E Ground Floor, L-1359 Luxembourg, Luxembourg
关键词
Software testing; mutation testing; continuous integration; evolving-systems;
D O I
10.1145/3530786
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Context: When software evolves, opportunities for introducing faults appear. Therefore, it is important to test the evolved program behaviors during each evolution cycle. However, while software evolves, its complexity is also evolving, introducing challenges to the testing process. To deal with this issue, testing techniques should be adapted to target the effect of the program changes instead of the entire program functionality. To this end, commit-aware mutation testing, a powerful testing technique, has been proposed. Unfortunately, commit-aware mutation testing is challenging due to the complex program semantics involved. Hence, it is pertinent to understand the characteristics, predictability, and potential of the technique. Objective: We conduct an exploratory study to investigate the properties of commit-relevant mutants, i.e., the test elements of commit-aware mutation testing, by proposing a general definition and an experimental approach to identify them. We thus aim at investigating the prevalence, location, and comparative advantages of commit-aware mutation testing over time (i.e., the program evolution). We also investigate the predictive power of several commit-related features in identifying and selecting commit-relevant mutants to understand the essential properties for its best-effort application case. Method: Our commit-relevant definition relies on the notion of observational slicing, approximated by higher-order mutation. Specifically, our approach utilizes the impact of mutants, effects of one mutant on another in capturing and analyzing the implicit interactions between the changed and unchanged code parts. The study analyses millions of mutants (over 10 million), 288 commits, five (5) different open-source software projects involving over 68,213 CPU days of computation and sets a ground truth where we perform our analysis. Results: Our analysis shows that commit-relevant mutants are located mainly outside of program commit change (81%), suggesting a limitation in previous work. We also note that effective selection of commitrelevant mutants has the potential of reducing the number of mutants by up to 93%. In addition, we demonstrate that commit relevant mutation testing is significantly more effective and efficient than state-of-the-art baselines, i.e., random mutant selection and analysis of only mutants within the program change. In our analysis of the predictive power of mutants and commit-related features (e.g., number ofmutants within a change, mutant type, and commit size) in predicting commit-relevant mutants, we found that most proxy features do not reliably predict commit-relevant mutants. Conclusion: This empirical study highlights the properties of commit-relevant mutants and demonstrates the importance of identifying and selecting commit-relevant mutants when testing evolving software systems.
引用
收藏
页数:39
相关论文
共 51 条
  • [1] Evaluating Non-adequate Test-Case Reduction
    Alipour, Mohammad Amin
    Shi, August
    Gopinath, Rahul
    Marinov, Darko
    Grocer, Alex
    [J]. 2016 31ST IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2016, : 16 - 26
  • [2] Establishing Theoretical Minimal Sets of Mutants
    Ammann, Paul
    Delamaro, Marcio E.
    Offutt, Jeff
    [J]. 2014 IEEE SEVENTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST), 2014, : 21 - 30
  • [3] [Anonymous], 2012, ISSTA, DOI DOI 10.1145/2338965.2336793
  • [4] [Anonymous], 2013, ESEC FSE 2013, DOI DOI 10.1145/2491411.2491438
  • [5] MaTRIX: Maintenance-oriented testing requirements identifier and examiner
    Apiwattanapong, Taweesup
    Santelices, Raul
    Chittimalli, Pavan Kumar
    Orso, Alessandro
    Harrold, Mary Jean
    [J]. TAIC PART - TESTING: ACADEMIC & INDUSTRIAL CONFERENCE - PRACTICE AND RESEARCH TECHNIQUES, PROCEEDINGS, 2006, : 137 - +
  • [6] Binkley D, 2005, PROC IEEE INT CONF S, P177
  • [7] Semantics guided regression test cost reduction
    Binkley, D
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1997, 23 (08) : 498 - 516
  • [8] ORBS: Language-Independent Program Slicing
    Binkley, David
    Gold, Nicolas
    Harman, Mark
    Islam, Syed
    Krinke, Jens
    Yoo, Shin
    [J]. 22ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (FSE 2014), 2014, : 109 - 120
  • [9] Empirical study of optimization techniques for massive slicing
    Binkley, David
    Harman, Mark
    Krinke, Jens
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2008, 30 (01):
  • [10] Towards Incremental Mutation Testing
    Cachia, Mark Anthony
    Micallef, Mark
    Colombo, Christian
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2013, 294 : 2 - 11