Defect Category Prediction Based on Multi-Source Domain Adaptation

Journal of Software [2024]
2024年05月17日
  • 简介
    近年来,基于深度学习的缺陷预测技术已成为软件工程领域的一个重要研究课题。这些技术可以在不执行代码的情况下识别潜在的缺陷。然而,现有的方法大多集中于确定方法级别代码中缺陷的存在,缺乏精确分类特定缺陷类别的能力。因此,这削弱了开发人员定位和纠正缺陷的效率。此外,在实际软件开发中,新项目通常缺乏足够的缺陷数据来训练高准确度的深度学习模型。在现有项目的历史数据上训练的模型通常难以在新项目上实现令人满意的泛化性能。因此,本文首先将传统的二元缺陷预测任务转化为多标签分类问题,采用通用弱点枚举(CWE)中描述的缺陷类别作为细粒度的预测标签。为了增强模型在跨项目场景下的性能,本文提出了一个多源域自适应框架,集成了对抗训练和注意机制。具体而言,所提出的框架采用对抗训练来减轻领域(即软件项目)的差异,并进一步利用领域不变特征来捕捉每个源域和目标域之间的特征相关性。同时,所提出的框架采用加权最大均值差异作为注意机制,以最小化源域和目标域特征之间的表示距离,从而有助于模型学习更多的领域独立特征。在8个真实的开源项目上的实验表明,与现有技术基线相比,所提出的方法实现了显著的性能提升。
  • 图表
  • 解决问题
    本文试图解决软件工程中缺陷预测技术的问题,即现有方法大多集中于在方法级别上确定缺陷的存在,缺乏对特定缺陷类别进行精确分类的能力,同时新项目缺乏足够的缺陷数据来训练深度学习模型。因此,本文将传统的二元缺陷预测任务转化为多标签分类问题,采用CWE中描述的缺陷类别作为细粒度预测标签,并提出了一种多源领域自适应框架来提高模型在跨项目场景下的性能。
  • 关键思路
    本文提出了一个多源领域自适应框架,该框架结合了对抗训练和注意机制,以缓解不同软件项目之间的领域差异,并利用领域不变特征来捕捉每个源域和目标域之间的特征相关性。同时,该框架使用加权最大均值距离作为注意机制,以最小化源域和目标域特征之间的表示距离,从而帮助模型学习更多的领域无关特征。
  • 其它亮点
    本文的实验采用了8个真实的开源项目,结果表明,相比于现有的基线模型,本文提出的方法在跨项目场景下取得了显著的性能提升。此外,本文还将传统的二元缺陷预测任务转化为多标签分类问题,采用CWE中描述的缺陷类别作为细粒度预测标签,这是一个新的思路。
  • 相关研究
    在软件工程领域中,最近的相关研究包括:1. Chen等人的“DeepJIT: A Deep Learning Framework for Just-In-Time Defect Prediction”;2. Wang等人的“Deep Transfer Learning for Cross-Project Defect Prediction”;3. Zhang等人的“Transfer Learning for Cross-Company Software Defect Prediction: An Empirical Study”。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论