The Co-Evolution of Test Maintenance and Code Maintenance through the lens of Fine-Grained Semantic Changes

09/26/2017
by   Stanislav Levin, et al.
0

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 performing complementary test maintenance in the same commit (e.g., update an existing test or add a new one). When developers do perform test maintenance, it is likely to be affected by the semantic changes they perform as part of their commit. Our work is based on studying 61 popular open source projects, comprised of over 240,000 commits consisting of over 16,000,000 semantic change type instances, performed by over 4,000 software engineers.

READ FULL TEXT

page 5

page 6

page 8

research
03/15/2018

Why We Engage in FLOSS: Answers from Core Developers

The maintenance and evolution of Free/Libre Open Source Software (FLOSS)...
research
05/16/2023

Applying Machine Learning Analysis for Software Quality Test

One of the biggest expense in software development is the maintenance. T...
research
06/01/2022

Technical Debts and Faults in Open-source Quantum Software Systems: An Empirical Study

Quantum computing is a rapidly growing field attracting the interest of ...
research
07/28/2019

Characterizing and Understanding Software Developer Networks in Security Development

To build secure software, developers often work together during software...
research
04/08/2022

Clone Detection on Large Scala Codebases

Code clones are identical or similar code segments. The wide existence o...
research
10/20/2019

Visually Exploring Software Maintenance Activities

Lehman's Laws teach us that a software system will become progressively ...
research
07/15/2023

Improving Trace Link Recommendation by Using Non-Isotropic Distances and Combinations

The existence of trace links between artifacts of the software developme...

Please sign up or login with your details

Forgot password? Click here to reset