Patterns of Code-to-Test Co-evolution for Automated Test Suite Maintenance

被引:3
作者
Shimmi, Samiha [1 ]
Rahimi, Mona [1 ]
机构
[1] Nothtem Illinois Univ, Dept Comp Sci, De Kalb, IL 60115 USA
来源
2022 IEEE 15TH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST 2022) | 2022年
关键词
test suite maintenance; test suite evolution; automatic test case generation; patterns of co-evolution; TRACEABILITY;
D O I
10.1109/ICST53961.2022.00023
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Software systems are characterized by continual change which often occurs concurrently across various artifact types. While prior work has focused on the evolution of individual artifacts, this paper studies the patterns of co-evolution between source and test code. In this research, with a reference to the literature, as well as our manual analysis of several open-source software systems we first, patternize and document common patterns of co-evolution between source code and test suites. Leveraging the proposed patterns, we further infer the necessary remedies in the test suite in response to source code changes. Our approach enables to add missing test cases to the current version of a system (augmentation), but additionally allows to reuse and evolve the existing test suite for a modified version of the system (evolution). Furthermore, identifying patterns of concurrent evolution provides opportunities for a bi-directional change detection and remediation for both artifacts, source code and test cases, and additionally automates the process of maintaining code-to-test trace links. The evaluation of the patterns and remedies in live large open-source applications indicated the patterns contained up to 42% of the source code changes and the remediation recovered up to 100% of the impacted test cases in certain cases.
引用
收藏
页码:116 / 127
页数:12
相关论文
共 60 条
[21]  
Garlan D., 2009, Autonomic Computing and Networking, P31
[22]   A Method for Finding Missing Unit Tests [J].
Gaston, Daniel ;
Clause, James .
2020 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2020), 2020, :92-103
[23]   Using origin analysis to detect merging and splitting of source code entities [J].
Godfrey, MW ;
Zou, LJ .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2005, 31 (02) :166-181
[24]  
Google, GOOGL GITILES SIMPL
[25]  
Google, GOOGL GUAV GOOGL COR
[26]  
Google, GOOGL MUG SMALL JAV
[27]  
Google Security Team, 2024, Tink cryptographic library
[28]   Maintaining and Evolving GUI-Directed Test Scripts [J].
Grechanik, Mark ;
Xie, Qing ;
Fu, Chen .
2009 31ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2009, :408-418
[29]   WATERFALL: An Incremental Approach for Repairing Record-Replay Tests of Web Applications [J].
Hammoudi, Mouna ;
Rothermel, Gregg ;
Stocco, Andrea .
FSE'16: PROCEEDINGS OF THE 2016 24TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2016, :751-762
[30]   A systematic literature review of test breakage prevention and repair techniques [J].
Imtiaz, Javaria ;
Sherin, Salman ;
Khan, Muhammad Uzair ;
Iqbal, Muhammad Zohaib .
INFORMATION AND SOFTWARE TECHNOLOGY, 2019, 113 :1-19