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

被引:2
|
作者
Shimmi, Samiha [1 ]
Rahimi, Mona [1 ]
机构
[1] Nothtem Illinois Univ, Dept Comp Sci, De Kalb, IL 60115 USA
关键词
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
相关论文
共 50 条
  • [41] Evolution Control in MDE Projects: Controlling Model and Code Co-evolution
    Estublier, Jacky
    Leveque, Thomas
    Vega, German
    FUNDAMENTALS OF SOFTWARE ENGINEERING, 2010, 5961 : 431 - 438
  • [42] ADVICE: Automated detection and validation of interaction by co-evolution
    Tan, SH
    Zhang, Z
    Ng, SK
    NUCLEIC ACIDS RESEARCH, 2004, 32 : W69 - W72
  • [43] Beyond Code Coverage - an Approach for Test Suite Assessment and Improvement
    Tengeri, David
    Beszedes, Arpad
    Gergely, Tamas
    Vidacs, Laszlo
    Havas, David
    Gyimothy, Tibor
    2015 IEEE EIGHTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS (ICSTW), 2015,
  • [44] Test code evolution and mutation testing
    Le Traon, Yves
    Xie, Tao
    SOFTWARE TESTING VERIFICATION & RELIABILITY, 2024, 34 (03):
  • [45] Providing test quality feedback using static source code and automatic test suite metrics
    Nagappan, Nachiappan
    Williams, Laurie
    Osborne, Jason
    Vouk, Mladen
    Abrahamsson, Pekka
    16TH IEEE INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING, PROCEEDINGS, 2005, : 85 - 94
  • [46] Towards a Comprehensive Test Suite for Detectors of Design Patterns
    Wegrzynowicz, Patrycja
    Stencel, Krzysztof
    2009 IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, PROCEEDINGS, 2009, : 103 - 110
  • [47] Inspecting automated test code: A preliminary study
    Lanubile, Filippo
    Mallardo, Teresa
    AGILE PROCESSES IN SOFTWARE ENGINEERING AND EXTREME PROGRAMMING, PROCEEDINGS, 2007, 4536 : 115 - +
  • [48] Exploring Test Suite Diversification and Code Coverage in Multi-Objective Test Case Selection
    Mondal, Debajyoti
    Hemmati, Hadi
    Durocher, Stephane
    2015 IEEE 8TH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST), 2015,
  • [49] Multilingual Code Co-evolution using Large Language Models
    Zhang, Jiyang
    Nie, Pengyu
    Li, Junyi Jessy
    Gligoric, Milos
    PROCEEDINGS OF THE 31ST ACM JOINT MEETING EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, ESEC/FSE 2023, 2023, : 695 - 707
  • [50] Multilingual Code Co-evolution using Large Language Models
    Zhang, Jiyang
    Nie, Pengyu
    Li, Junyi Jessy
    Gligoric, Milos
    ESEC/FSE 2023 - Proceedings of the 31st ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering, 2023, : 695 - 707