Achieving scalable mutation-based generation of whole test suites

被引:0
作者
Gordon Fraser
Andrea Arcuri
机构
[1] The University of Sheffield,Department of Computer Science
[2] Certus Software V&V Center at Simula Research Laboratory,undefined
来源
Empirical Software Engineering | 2015年 / 20卷
关键词
Mutation testing; Test case generation; Search-based testing; Testing classes; Unit testing;
D O I
暂无
中图分类号
学科分类号
摘要
Without complete formal specification, automatically generated software tests need to be manually checked in order to detect faults. This makes it desirable to produce the strongest possible test set while keeping the number of tests as small as possible. As commonly applied coverage criteria like branch coverage are potentially weak, mutation testing has been proposed as a stronger criterion. However, mutation based test generation is hampered because usually there are simply too many mutants, and too many of these are either trivially killed or equivalent. On such mutants, any effort spent on test generation would per definition be wasted. To overcome this problem, our search-based EvoSuite test generation tool integrates two novel optimizations: First, we avoid redundant test executions on mutants by monitoring state infection conditions, and second we use whole test suite generation to optimize test suites towards killing the highest number of mutants, rather than selecting individual mutants. These optimizations allowed us to apply EvoSuite to a random sample of 100 open source projects, consisting of a total of 8,963 classes and more than two million lines of code, leading to a total of 1,380,302 mutants. The experiment demonstrates that our approach scales well, making mutation testing a viable test criterion for automated test case generation tools, and allowing us to analyze the relationship of branch coverage and mutation testing in detail.
引用
收藏
页码:783 / 812
页数:29
相关论文
共 35 条
[1]  
Arcuri A(2013)It really does matter how you normalize the branch distance in search-based software testing Softw Test Verification Reliab (STVR) 23 119-147
[2]  
Baudry B(2005)Automatic test cases optimization: a bacteriologic algorithm IEEE Softw 22 76-82
[3]  
Fleurey F(1991)Constraint-based automatic test data generation IEEE Trans Softw Eng 17 900-910
[4]  
Jzquel JM(1978)Hints on test data selection: help for the practicing programmer Computer 11 34-41
[5]  
Le Traon Y(1997)All-uses vs mutation testing: an experimental comparison of effectiveness J Syst Softw 38 235-253
[6]  
DeMillo RA(2012)Mutation-driven generation of unit tests and oracles IEEE Trans Softw Eng (TSE) 28 278-292
[7]  
Offutt AJ(1977)Testing programs with the aid of a compiler IEEE Trans Softw Eng 3 279-290
[8]  
DeMillo RA(1999)Using program slicing to assist in the detection of equivalent mutants Softw Test Verification Reliab 9 233-262
[9]  
Lipton RJ(1982)Weak mutation testing and completeness of test sets IEEE Trans Softw Eng 8 371-379
[10]  
Sayward FG(2009)Higher order mutation testing J Informat Softw Technol 51 1379-1393