一句话:提出 node2defect,用 node2vec 自动学习类依赖网络结构特征并结合传统特征提升缺陷预测。
软件缺陷预测中,依赖关系网络度量能刻画模块结构,但现有方法依赖人工定义的中心性或度统计等指标,灵活性差且计算开销高。论文提出 node2defect:首先为程序构建类依赖网络(Class Dependency Network),再利用 node2vec 网络嵌入技术,将依赖网络结构自动编码到低维向量空间,学习结构特征;随后将这些嵌入特征与传统软件工程特征结合,用于缺陷预测。作者在 15 个开源程序上评估,实验显示该方法在 F-measure 上平均优于当前最佳方法 9.15%。
Network measures have been proved to be useful in predicting software defects. Leveraging the dependency relationships between software modules, network measures can capture various structural features of software systems. However, existing studies have relied on user-defined network measures (e.g., degree statistics or centrality metrics), which are inflexible and require high computation cost, to describe the structural features. In this paper, we propose a new method called node2defect which uses a newly proposed network embedding technique, node2vec, to automatically learn to encode dependency network structure into low-dimensional vector spaces to improve software defect prediction. Specifically, we firstly construct a program's Class Dependency Network. Then node2vec is used to automatically learn structural features of the network. After that, we combine the learned features with traditional software engineering features, for accurate defect prediction. We evaluate our method on 15 open source programs. The experimental results show that in average, node2defect improves the state-of-the-art approach by 9.15% in terms of F-measure.
DOI 原文 ·
@inproceedings{paperbot4701,
title = {node2defect: using network embedding to improve software defect prediction},
author = {Yu Qu and Ting Liu and Jianlei Chi and Yangxu Jin and Di Cui and Ancheng He and Qinghua Zheng},
booktitle = {ASE},
year = {2018},
doi = {10.1145/3238147.3240469}
}