The Co-Evolution of Test Maintenance and Code Maintenance through the lens of Fine-Grained Semantic Changes
Stanislav Levin, Amiram Yehudai

TL;DR
This large-scale study investigates how test maintenance correlates with code changes in open source projects, revealing patterns and predictive models that link semantic code changes to test updates and project evolution.
Contribution
The paper provides the first comprehensive analysis of the co-evolution of test and code maintenance through semantic change profiling in open source projects.
Findings
Test counts can be predicted from maintenance activity profiles.
Developers often fix code without updating tests in the same commit.
Semantic changes influence the likelihood of test maintenance actions.
Abstract
Automatic testing is a widely adopted technique for improving software quality. Software developers add, remove and update test methods and test classes as part of the software development process as well as during the evolution phase, following the initial release. In this work we conduct a large scale study of 61 popular open source projects and report the relationships we have established between test maintenance, production code maintenance, and semantic changes (e.g, statement added, method removed, etc.). performed in developers' commits. We build predictive models, and show that the number of tests in a software project can be well predicted by employing code maintenance profiles (i.e., how many commits were performed in each of the maintenance activities: corrective, perfective, adaptive). Our findings also reveal that more often than not, developers perform code fixes without…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
