Understanding and Identifying Technical Debt in the Co-Evolution of Production and Test Code

Yimeng Guo, Zhifei Chen, Lu Xiao, Lin Chen, Yanhui Li, Yuming Zhou

Research output: Contribution to journalArticlepeer-review

Abstract

The co-evolution of production and test code (PT co-evolution) has received increasing attention in recent years. However, we found that existing work did not comprehensively study various PT co-evolution scenarios, such as the qualification and persistence of their effects on software. Inspired by technical debt (TD), we refer to TD generated during the co-evolution between production and test code as PT co-evolution technical debt (PTCoTD). To better understand PT co-evolution, we first conducted an exploratory study on its characteristics on 15 open-source projects, finding unbalanced PT co-evolution prevalent and summarizing five potential PT flaws. Then we proposed an approach to identify and quantify PTCoTDs of these flaw patterns, considering evolutionary and structural relationships. We also built prediction models to describe cost trajectories and rank all PTCoTDs to prioritize expensive ones. The evaluation on the 15 projects shows that our approach can identify PTCoTDs that deserve attention. The identified PTCoTDs account for about half of the project's total maintenance costs, and the cost proportion of the expensive Top-5 is 1.8x more than the file proportion they contain. Almost all covered maintenance costs persist as PTCoTD in the future, with an average increase of 6.8% between the last two releases. Our approach also accurately predicts the costs of PTCoTD with an average prediction deviation of only 8.3%. Our study provides valuable insights into PT co-evolution scenarios and their effects, which can guide practices and inspire future work on software testing and maintenance.

Original languageEnglish
Pages (from-to)1415-1436
Number of pages22
JournalIEEE Transactions on Software Engineering
Volume51
Issue number5
DOIs
StatePublished - 2025

Keywords

  • software evolution
  • software maintenance
  • software testing
  • Technical debt

Fingerprint

Dive into the research topics of 'Understanding and Identifying Technical Debt in the Co-Evolution of Production and Test Code'. Together they form a unique fingerprint.

Cite this