Test Co‐Evolution in Software Projects: A Large‐Scale Empirical Study
ABSTRACT The asynchronous evolution of tests and code can compromise software quality and project longevity. To investigate the impact of test and production code co‐evolution, this study analyzes a large‐scale dataset of 526 GitHub repositories written in six programming languages: JavaScript, Type...
Saved in:
| Published in | Journal of software : evolution and process Vol. 37; no. 7 |
|---|---|
| Main Authors | , , |
| Format | Journal Article |
| Language | English |
| Published |
Chichester
Wiley Subscription Services, Inc
01.07.2025
|
| Subjects | |
| Online Access | Get full text |
| ISSN | 2047-7473 2047-7481 2047-7481 |
| DOI | 10.1002/smr.70035 |
Cover
| Summary: | ABSTRACT
The asynchronous evolution of tests and code can compromise software quality and project longevity. To investigate the impact of test and production code co‐evolution, this study analyzes a large‐scale dataset of 526 GitHub repositories written in six programming languages: JavaScript, TypeScript, Java, Python, PHP, and C#. We focus on understanding how tests evolve throughout the software lifecycle and the frequency with which production and test code evolve in sync. By applying clustering algorithms and Pearson's correlation coefficient, we identify different patterns of test co‐evolution between projects. We found a significant correlation between high test co‐evolution and smaller development teams but no significant relationship with the frequency of different maintenance activities (corrective, adaptive, perfective, or multi). Despite this, we identified five distinct test evolution patterns, highlighting diverse approaches to integrating testing practices. This work provides valuable insights into the dynamics of test co‐evolution and its correlation in software maintainability.
We conducted an empirical study on the co‐evolution between test and production code and its correlation with project characteristics, such as team size and maintenance activities, in 526 GitHub repositories. Our analysis identified five distinct test evolution patterns, including progressive growth, stability, and erosion of the test base, revealing the most common testing behaviors. We found a strong correlation between high test co‐evolution and smaller development teams. |
|---|---|
| Bibliography: | ObjectType-Article-1 SourceType-Scholarly Journals-1 ObjectType-Feature-2 content type line 14 |
| ISSN: | 2047-7473 2047-7481 2047-7481 |
| DOI: | 10.1002/smr.70035 |