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...

Full description

Saved in:
Bibliographic Details
Published inJournal of software : evolution and process Vol. 37; no. 7
Main Authors Miranda, Charles, Avelino, Guilherme, Santos Neto, Pedro
Format Journal Article
LanguageEnglish
Published Chichester Wiley Subscription Services, Inc 01.07.2025
Subjects
Online AccessGet full text
ISSN2047-7473
2047-7481
2047-7481
DOI10.1002/smr.70035

Cover

More Information
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