Defect prediction using deep learning with Network Portrait Divergence for software evolution

Defect prediction using deep learning with Network Portrait Divergence for software evolution
复制标题

DOI:
10.1007/s10664-022-10147-0
复制
发表时间:
2022-06
影响因子:
4.1
通讯作者:
V. Walunj;Gharib Gharibi;Rakan Alanazi;Yugyung Lee
V. Walunj;Gharib Gharibi;Rakan Alanazi;Yugyung Lee
中科院分区:
计算机科学2区
文献类型:
--
作者:
V. Walunj;Gharib Gharibi;Rakan Alanazi;Yugyung Lee

文献摘要

相似文献

理解软件演化对于软件开发任务(包括调试、维护和测试)是必不可少的。随着软件系统的发展,它的规模越来越大,变得越来越复杂,阻碍了对它的理解。研究者提出了几种基于软件度量的软件质量分析方法。主要实践之一是预测代码库中软件组件的缺陷,以提高敏捷产品质量。虽然存在一些软件度量,但基于图的度量很少用于软件质量。在本文中,我们探讨了最近的网络比较的进步,以表征软件的演变,并专注于帮助软件度量分析和缺陷预测。我们支持我们的方法与自动化工具命名GraphEvoDef。特别地,GraphEvoDef提供了三个主要贡献:(1)使用调用图检测和可视化软件演化中的重要事件,(2)提取适合于软件理解的度量,以及(3)检测和估计给定代码实体中的缺陷数量(例如,类)。我们的主要发现之一是有用的网络画像发散度度量,借用信息论域,以帮助理解软件的演变。为了验证我们的方法,我们检查了来自GitHub的29个不同的开源Java项目,然后使用来自PROMISE数据集的缺陷数据的9个用例演示了所提出的方法。我们还为分类和回归任务训练和评估了缺陷预测模型。我们提出的技术有一个减少18%的均方误差和增加48%的平方相关系数超过国家的最先进的方法在缺陷预测域。
Understanding software evolution is essential for software development tasks, including debugging, maintenance, and testing. As a software system evolves, it grows in size and becomes more complex, hindering its comprehension. Researchers proposed several approaches for software quality analysis based on software metrics. One of the primary practices is predicting defects across software components in the codebase to improve agile product quality. While several software metrics exist, graph-based metrics have rarely been utilized in software quality. In this paper, we explore recent network comparison advancements to characterize software evolution and focus on aiding software metrics analysis and defect prediction. We support our approach with an automated tool namedGraphEvoDef. Particularly,GraphEvoDefprovides three major contributions: (1) detecting and visualizing significant events in software evolution using call graphs, (2) extracting metrics that are suitable for software comprehension, and (3) detecting and estimating the number of defects in a given code entity (e.g., class). One of our major findings is the usefulness of the Network Portrait Divergence metric, borrowed from the information theory domain, to aid the understanding of software evolution. To validate our approach, we examined 29 different open-source Java projects from GitHub and then demonstrated the proposed approach using 9 use cases with defect data from the the PROMISE dataset. We also trained and evaluated defect prediction models for both classification and regression tasks. Our proposed technique has an 18% reduction in the mean square error and a 48% increase in squared correlation coefficient over the state-of-the-art approaches in the defect prediction domain.