前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ClusterCommit:一种基于项目集群的实时缺陷预测方法

ClusterCommit:一种基于项目集群的实时缺陷预测方法

作者头像
C4rpeDime
发布2022-09-13 10:19:17
3731
发布2022-09-13 10:19:17
举报
文章被收录于专栏:黑白安全黑白安全黑白安全

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

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

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

ClusterCommit:一种基于项目集群的实时缺陷预测方法 文章翻译 文章翻译  第1张
ClusterCommit:一种基于项目集群的实时缺陷预测方法 文章翻译 文章翻译 第1张

Fig. 1 方法框架

  • 项目聚类:对于输入的一组项目,通过依赖管理系统,如:Maven,提取每一个项目使用的库。然后构建项目依赖图(属于社区图),其中,节点是项目或者库,边是它们之间的依赖关系。注意,项目之间没有边连接,因为目标是要找到子项目之间共享的库。作者使用 LP(Label Propagation,标签传播算法)实现这一目标。
  • 特征提取:表 1 是本文所提特征(除了 SEXP)。这些特征基于 Kamei 等人[2]的文章。在本文中,作者使用 Pearson 相关系数来衡量特征之间的相关性。
ClusterCommit:一种基于项目集群的实时缺陷预测方法 文章翻译 文章翻译  第2张
ClusterCommit:一种基于项目集群的实时缺陷预测方法 文章翻译 文章翻译 第2张

Tab. 1 特征

  • 打标签:使用 Campos 等人提出的 RA-SZZ 算法来打标签。算法原理挺简单的,这里就不再赘述。
  • 分类器:本文选用随机森林作为分类器。
  • 模型评估:作者选择如图 2 所示的方法进行模型评估。具体来说,对于 Run 1,使用 P1 在训练时间间隔内的提交以及 P2 落在训练时间间隔内的提交作为训练集,然后使用[b, c]段的提交作为测试集,;对于 P2,使用[g, h]段的提交作为测试集;对于 P3,使用[k, l]段的提交作为测试集。P3 的所有提交都没有用于构建模型,这符合本文的思想:强耦合的项目可以用结果其他项目数据训练的模型来预测缺陷。对于 Run 2,通过移动时间窗口,进行模型的训练和测试流程。通过这种方式,模型评估能够覆盖所有的项目。
ClusterCommit:一种基于项目集群的实时缺陷预测方法 文章翻译 文章翻译  第3张
ClusterCommit:一种基于项目集群的实时缺陷预测方法 文章翻译 文章翻译 第3张

Fig. 2 模型评估方法

ClusterCommit:一种基于项目集群的实时缺陷预测方法 文章翻译 文章翻译  第4张
ClusterCommit:一种基于项目集群的实时缺陷预测方法 文章翻译 文章翻译 第4张

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.

原文标题: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 笔记作者:zhanS@SecQuan 笔记小编:cherry@SecQuan 文章翻译安全学术圈

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档