An Industrial Application of Mutation Testing: Lessons, Challenges, and Research Directions

被引:41
作者
Petrovic, Goran [1 ]
Ivankovic, Marko [1 ]
Kurtz, Bob [2 ]
Ammann, Paul [2 ]
Just, Rene [3 ]
机构
[1] Google Switzerland GmbH, Zurich, Switzerland
[2] George Mason Univ, Fairfax, VA 22030 USA
[3] Univ Massachusetts, Amherst, MA 01003 USA
来源
2018 IEEE 11TH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS (ICSTW) | 2018年
关键词
D O I
10.1109/ICSTW.2018.00027
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Mutation analysis evaluates a testing or debugging technique by measuring how well it detects mutants, which are systematically seeded, artificial faults. Mutation analysis is inherently expensive due to the large number of mutants it generates and due to the fact that many of these generated mutants are not effective; they are redundant, equivalent, or simply uninteresting and waste computational resources. A large body of research has focused on improving the scalability of mutation analysis and proposed numerous optimizations to, e.g., select effective mutants or efficiently execute a large number of tests against a large number of mutants. However, comparatively little research has focused on the costs and benefits of mutation testing, in which mutants are presented as testing goals to a developer, in the context of an industrial-scale software development process. This paper draws on an industrial application of mutation testing, involving 30,000+ developers and 1.9 million change sets, written in 4 programming languages. It shows that mutation testing with productive mutants does not add a significant overhead to the software development process and reports on mutation testing benefits perceived by developers. This paper also quantifies the costs of unproductive mutants, and the results suggest that achieving mutation adequacy is neither practical nor desirable. Finally, this paper describes lessons learned from these studies, highlights the current challenges of efficiently and effectively applying mutation testing in an industrial-scale software development process, and outlines research directions.
引用
收藏
页码:47 / 53
页数:7
相关论文
共 32 条
[1]   Applying Mutation Analysis On Kernel Test Suites: An Experience Report [J].
Ahmed, Iftekhar ;
Jensen, Carlos ;
Groce, Alex ;
McKenney, Paul E. .
10TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS - ICSTW 2017, 2017, :110-115
[2]  
Allamanis M., 2016, ARXIV161102516
[3]  
Ammann P., 2017, INTRO SOFTWARE TESTI
[4]   Establishing Theoretical Minimal Sets of Mutants [J].
Ammann, Paul ;
Delamaro, Marcio E. ;
Offutt, Jeff .
2014 IEEE SEVENTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST), 2014, :21-30
[5]   Is mutation an appropriate tool for testing experiments? [J].
Andrews, JH ;
Briand, LC ;
Labiche, Y .
ICSE 05: 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2005, :402-411
[6]   A Hitchhiker's guide to statistical tests for assessing randomized algorithms in software engineering [J].
Arcuri, Andrea ;
Briand, Lionel .
SOFTWARE TESTING VERIFICATION & RELIABILITY, 2014, 24 (03) :219-250
[7]   The Care and Feeding of Wild-Caught Mutants [J].
Brown, David Bingham ;
Vaughn, Michael ;
Liblit, Ben ;
Reps, Thomas .
ESEC/FSE 2017: PROCEEDINGS OF THE 2017 11TH JOINT MEETING ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2017, :511-522
[8]  
Coles H., REAL WORLD MUTATION
[9]   HINTS ON TEST DATA SELECTION - HELP FOR PRACTICING PROGRAMMER [J].
DEMILLO, RA ;
LIPTON, RJ .
COMPUTER, 1978, 11 (04) :34-41
[10]   Avoiding Useless Mutants [J].
Fernandes, Leonardo ;
Ribeiro, Marcio ;
Carvalho, Luiz ;
Gheyi, Rohit ;
Mongiovi, Melina ;
Santos, Andre ;
Cavalcanti, Ana ;
Ferrari, Fabiano ;
Maldonado, Jose Carlos .
PROCEEDINGS OF THE 16TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON GENERATIVE PROGRAMMING: CONCEPTS AND EXPERIENCES (GPCE'17), 2017, :187-198