Exploring software bug-proneness based on evolutionary clique modeling and analysis

Ran Mo,Zhen Yin
DOI: https://doi.org/10.1016/j.infsof.2020.106380
IF: 3.9
2020-12-01
Information and Software Technology
Abstract:<h3 class="u-h4 u-margin-m-top u-margin-xs-bottom">Context:</h3><p>Even if evolutionary coupling between files has been widely used for various studies, such as change impact analysis, defect prediction, and software design analysis etc., there has little work focusing on studying the linkage among evolutionary coupled files.</p><h3 class="u-h4 u-margin-m-top u-margin-xs-bottom">Objective:</h3><p>In this paper, we propose a novel model, <em>evolutionary clique (EClique)</em>, to characterize evolutionary coupled files as maintainable groups for bug fixes, analyze their bug-proneness and examine the possible causes of the bug-proneness.</p><h3 class="u-h4 u-margin-m-top u-margin-xs-bottom">Methods:</h3><p>To identify ECliques from a project, we propose two history measures to reason about the evolutionary coupling between files, and create a novel clustering algorithm. Given the evolutionary coupling information, our clustering algorithm will automatically identify ECliques in a project.</p><h3 class="u-h4 u-margin-m-top u-margin-xs-bottom">Results:</h3><p>We conduct analyses on 33,099 commits of ten open source projects to evaluate the usefulness of our <em>EClique</em> modeling and analysis approach: (1) The results show that files involved in an <em>EClique</em> are more likely to share similar design characteristics and change together for resolving bugs; (2) The results also show that the identified ECliques significantly contribute to a project's bug-proneness. Meanwhile, the majority of a project's bug-proneness can be captured by just a few ECliques which only contain a small portion of files; (3) Finally, we qualitatively demonstrate that bug-prone ECliques often exhibit design problems that propagate changes among files and can potentially be the causes of bug-proneness.</p><h3 class="u-h4 u-margin-m-top u-margin-xs-bottom">Conclusion:</h3><p>To reduce the bug-proneness of a software project, practitioners should pay attention to the identified ECliques, and resolve design problems embedded in these ECliques.</p>
computer science, information systems, software engineering
What problem does this paper attempt to address?