TY - GEN
T1 - Speeding up Mutation Testing via Regression Test Selection
T2 - 11th IEEE International Conference on Software Testing, Verification and Validation, ICST 2018
AU - Chen, Lingchao
AU - Zhang, Lingming
N1 - Funding Information:
VII. ACKNOWLEDGMENTS We thank the ICST reviewers for the valuable comments. This work is supported in part by NSF Grant No. CCF-1566589, UT Dallas start-up fund, Google, Huawei, and Samsung.
Publisher Copyright:
© 2018 IEEE.
PY - 2018/5/25
Y1 - 2018/5/25
N2 - Mutation testing is one of the most powerful methodologies to evaluate the quality of test suites, and has also been demonstrated to be effective for various other testing and debugging problems, e.g., test generation, fault localization, and program repair. However, despite various mutation testing optimization techniques, mutation testing is still notoriously time-consuming. Regression Testing Selection (RTS) has been widely used to speed up regression testing. Given a new program revision, RTS techniques only select and rerun the tests that may be affected by code changes, since the other tests should have the same results as the prior revision. To date, various practical RTS tools have been developed and used in practice. Intuitively, such RTS tools may be directly used to speed up mutation testing of evolving software systems, since we can simply recollect the mutation testing results of the affected tests while directly obtaining the mutation testing results for the other tests from the prior revision. However, to our knowledge, there is no such study. Therefore, in this paper, we perform the first extensive study (using 1513 revisions of 20 real-world GitHub Java projects, totalling 83.26 Million LoC) on the effectiveness and efficiency of various RTS techniques in speeding up mutation testing. Our study results demonstrate that both file-level static and dynamic RTS can achieve precise and efficient mutation testing, providing practical guidelines for developers.
AB - Mutation testing is one of the most powerful methodologies to evaluate the quality of test suites, and has also been demonstrated to be effective for various other testing and debugging problems, e.g., test generation, fault localization, and program repair. However, despite various mutation testing optimization techniques, mutation testing is still notoriously time-consuming. Regression Testing Selection (RTS) has been widely used to speed up regression testing. Given a new program revision, RTS techniques only select and rerun the tests that may be affected by code changes, since the other tests should have the same results as the prior revision. To date, various practical RTS tools have been developed and used in practice. Intuitively, such RTS tools may be directly used to speed up mutation testing of evolving software systems, since we can simply recollect the mutation testing results of the affected tests while directly obtaining the mutation testing results for the other tests from the prior revision. However, to our knowledge, there is no such study. Therefore, in this paper, we perform the first extensive study (using 1513 revisions of 20 real-world GitHub Java projects, totalling 83.26 Million LoC) on the effectiveness and efficiency of various RTS techniques in speeding up mutation testing. Our study results demonstrate that both file-level static and dynamic RTS can achieve precise and efficient mutation testing, providing practical guidelines for developers.
KW - Dynamic Analysis
KW - Mutation Testing
KW - Regression Test Selection
KW - Regression Testing
KW - Static Analysis
UR - http://www.scopus.com/inward/record.url?scp=85048447663&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85048447663&partnerID=8YFLogxK
U2 - 10.1109/ICST.2018.00016
DO - 10.1109/ICST.2018.00016
M3 - Conference contribution
AN - SCOPUS:85048447663
T3 - Proceedings - 2018 IEEE 11th International Conference on Software Testing, Verification and Validation, ICST 2018
SP - 58
EP - 69
BT - Proceedings - 2018 IEEE 11th International Conference on Software Testing, Verification and Validation, ICST 2018
PB - Institute of Electrical and Electronics Engineers Inc.
Y2 - 9 April 2018 through 13 April 2018
ER -