当前位置: X-MOL 学术IEEE Trans. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
How Well Do Change Sequences Predict Defects? Sequence Learning from Software Changes
IEEE Transactions on Software Engineering ( IF 7.4 ) Pub Date : 2020-11-01 , DOI: 10.1109/tse.2018.2876256
Ming Wen , Rongxin Wu , S.C. Cheung

Software defect prediction, which aims to identify defective modules, can assist developers in finding bugs and prioritizing limited quality assurance resources. Various features to build defect prediction models have been proposed and evaluated. Among them, process metrics are one important category. Yet, existing process metrics are mainly encoded manually from change histories and ignore the sequential information arising from the changes during software evolution. Are the change sequences derived from such information useful to characterize buggy program modules? How can we leverage such sequences to build good defect prediction models? Unlike traditional process metrics used for existing defect prediction models, change sequences are mostly vectors of variable length. This makes it difficult to apply such sequences directly in prediction models that are driven by conventional classifiers. To resolve this challenge, we utilize Recurrent Neural Network (RNN), which is a deep learning technique, to encode features from sequence data automatically. In this paper, we propose a novel approach called Fences, which extracts six types of change sequences covering different aspects of software changes via fine-grained change analysis. It approaches defects prediction by mapping it to a sequence labeling problem solvable by RNN. Our evaluations on 10 open source projects show that Fences can predict defects with high performance. In particular, our approach achieves an average F-measure of 0.657, which improves the prediction models built on traditional metrics significantly. The improvements vary from 31.6 to 46.8 percent on average. In terms of AUC, Fences achieves an average value of 0.892, and the improvements over baselines vary from 4.2 to 16.1 percent. Fences also outperforms the state-of-the-art technique which learns semantic features automatically from static code via deep learning.

中文翻译:

更改序列如何预测缺陷?从软件变化中学习序列

软件缺陷预测旨在识别有缺陷的模块,可以帮助开发人员发现错误并优先考虑有限的质量保证资源。已经提出并评估了构建缺陷预测模型的各种特征。其中,过程度量是重要的一类。然而,现有的过程度量主要是根据变更历史手动编码的,而忽略了软件演化过程中因变更而产生的顺序信息。从这些信息中导出的更改序列是否有助于表征有缺陷的程序模块?我们如何利用这些序列来构建良好的缺陷预测模型?与用于现有缺陷预测模型的传统过程度量不同,变更序列主要是可变长度的向量。这使得很难将此类序列直接应用于由传统分类器驱动的预测模型。为了解决这一挑战,我们利用循环神经网络 (RNN),这是一种深度学习技术,自动对序列数据中的特征进行编码。在本文中,我们提出了一种称为 Fences 的新方法,它通过细粒度的变更分析提取六种类型的变更序列,涵盖软件变更的不同方面。它通过将缺陷预测映射到可由 RNN 解决的序列标记问题来进行缺陷预测。我们对 10 个开源项目的评估表明,Fences 可以高性能地预测缺陷。特别是,我们的方法实现了 0.657 的平均 F-measure,这显着改进了基于传统指标的预测模型。改进从 31.6 到 46 不等。平均 8%。就 AUC 而言,Fences 的平均值为 0.892,相对于基线的改进从 4.2% 到 16.1% 不等。Fences 也优于最先进的技术,该技术通过深度学习从静态代码中自动学习语义特征。
更新日期:2020-11-01
down
wechat
bug