ClusterCommit:一种基于项目集群的实时缺陷预测方法
2022-8-26 08:36:10 Author: mp.weixin.qq.com(查看原文) 阅读量:3 收藏

原文标题:ClusterCommit: A Just-in-Time Defect Prediction Approach Using Clusters of Projects

原文作者:Shehab M A, Hamou-Lhadj A, Alawneh L.

原文链接:https://ieeexplore.ieee.org/abstract/document/9825789

发表会议:SANER' 22

笔记作者:[email protected]

笔记小编:[email protected]

大多数现有的 JIT 缺陷预测技术的目标是项目内缺陷预测,而在本文中,受 Nayrolles 等人[1]的启发(Nayrolles 等人认为,对于工业项目而言,将高度耦合的不同项目的提交组合起来有助于提升 JIT 缺陷预测的性能,因为这些项目重用或共享同一个代码库,因此它们也可能出现同样的错误),作者提出了一种适用于共享公共库和功能的项目集群的模型。与现有技术不同的是,ClusterCommit 方法通过组合来自更大集群的一组项目的提交(Commit)来训练模型。这样训练的模型能够适应于更多的项目。

图 1 是 ClusterCommit 模型的框架。模型的输入为一组共享了一些依赖项的项目,输入可以由用户自定义。接着需要对输入的项目进行聚类以识别强耦合的各个子项目(这些子项目可能共享一个更大的代码库)。对于聚类的每一个簇,提取对应的 Commit 来训练模型。

Fig. 1 方法框架
  • 项目聚类:对于输入的一组项目,通过依赖管理系统,如:Maven,提取每一个项目使用的库。然后构建项目依赖图(属于社区图),其中,节点是项目或者库,边是它们之间的依赖关系。注意,项目之间没有边连接,因为目标是要找到子项目之间共享的库。作者使用 LP(Label Propagation,标签传播算法)实现这一目标。

  • 特征提取:表 1 是本文所提特征(除了 SEXP)。这些特征基于 Kamei 等人[2]的文章。在本文中,作者使用 Pearson 相关系数来衡量特征之间的相关性。

Tab. 1 特征
  • 打标签:使用 Campos 等人提出的 RA-SZZ 算法来打标签。算法原理挺简单的,这里就不再赘述。

  • 分类器:本文选用随机森林作为分类器。

  • 模型评估:作者选择如图 2 所示的方法进行模型评估。具体来说,对于 Run 1,使用 P1 在训练时间间隔内的提交以及 P2 落在训练时间间隔内的提交作为训练集,然后使用[b, c]段的提交作为测试集,;对于 P2,使用[g, h]段的提交作为测试集;对于 P3,使用[k, l]段的提交作为测试集。P3 的所有提交都没有用于构建模型,这符合本文的思想:强耦合的项目可以用结果其他项目数据训练的模型来预测缺陷。对于 Run 2,通过移动时间窗口,进行模型的训练和测试流程。通过这种方式,模型评估能够覆盖所有的项目。

Fig. 2 模型评估方法
Fig. 3 数据来源

参考文献

[1] Nayrolles M, Hamou-Lhadj A. Clever: Combining code metrics with clone detection for just-in-time fault prevention and resolution in large industrial projects[C]//Proceedings of the 15th international conference on mining software repositories. 2018: 153-164.

[2] Kamei Y, Shihab E, Adams B, et al. A large-scale empirical study of just-in-time quality assurance[J]. IEEE Transactions on Software Engineering, 2012, 39(6): 757-773.

[3] Neto E C, Da Costa D A, Kulesza U. The impact of refactoring changes on the szz algorithm: An empirical study[C]//2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, 2018: 380-390.

安全学术圈招募队友-ing 
有兴趣加入学术圈的请联系 secdr#qq.com


文章来源: https://mp.weixin.qq.com/s?__biz=MzU5MTM5MTQ2MA==&mid=2247488129&idx=1&sn=ad213594dcdf6c0dc2b60fc480d3e3e3&chksm=fe2eed0ac959641c08b7c481b6452a03d71ba854bd3c9a44dce59001f8a6102d9c638341cb8a#rd
如有侵权请联系:admin#unsafe.sh