Abstract
AbstractEvolutionary coupling (EC) is defined as the implicit relationship between 2 or more software artifacts that are frequently changed together. Changing software is widely reported to be defect‐prone. In this study, we investigate the effect of EC on the defect proneness of large industrial software systems and explain why the effects vary. We analysed 2 large industrial systems: a legacy financial system and a modern telecommunications system. We collected historical data for 7 years from 5 different software repositories containing 176 thousand files. We applied correlation and regression analysis to explore the relationship between EC and software defects, and we analysed defect types, size, and process metrics to explain different effects of EC on defects through correlation. Our results indicate that there is generally a positive correlation between EC and defects, but the correlation strength varies. Evolutionary coupling is less likely to have a relationship to software defects for parts of the software with fewer files and where fewer developers contributed. Evolutionary coupling measures showed higher correlation with some types of defects (based on root causes) such as code implementation and acceptance criteria. Although EC measures may be useful to explain defects, the explanatory power of such measures depends on defect types, size, and process metrics.
Highlights
Software constantly changes for many reasons.[1,2,3,4] Studies have shown that changing software may be a defect-prone activity.[5,6,7,8] Code that is changed most frequently is likely to be most defect-prone.[7,9,10,11] Evolutionary coupling (EC) could explain some of this defect proneness because when code with high EC is changed, a high number of changes must be made to related parts of the system
(RQ1) What is the relationship between EC and software defects? Our results suggest that there is, in general, a significant positive correlation between EC measures and defects
We presented a study on the relationship between EC and software defects in 2 large industrial software systems
Summary
Software constantly changes for many reasons.[1,2,3,4] Studies have shown that changing software may be a defect-prone activity.[5,6,7,8] Code that is changed most frequently is likely to be most defect-prone.[7,9,10,11] Evolutionary coupling (EC) could explain some of this defect proneness because when code with high EC is changed, a high number of changes must be made to related parts of the system The locations of these related changes may be scattered within the application or even across applications in a software ecosystem. Making related changes across these locations is likely to be challenging. Developers may miss some locations, which should have been cochanged, and this may cause unforeseen ripple effects and problems
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.