【技术实现步骤摘要】
一种基于图结构的跨项目软件缺陷预测方法
[0001]本专利技术涉及软件缺陷领域,具体涉及一种基于图结构的跨项目软件缺陷预测方法
技术介绍
[0002]随着互联网技术的快速发展,软件的应用领域在深度和广度上不断扩大,软件一些小小的错误将会导致巨大的损失,因此软件缺陷预测对保障软件质量十分重要。其中软件的跨项目软件缺陷预测(cross
‑
project software defectprediction,CPDP)是一项非常重要的研究。该研究主要解决的问题是需要预测的项目(目标项目)是一个未知的情况下,只能利用已知的一些软件项目(源项目)数据来训练软件缺陷模型。由于源项目和目标项目的开发者不同,且每个项目的开发都是应用于不同的情况,因此源项目与目标项目的数据分布不同。如何消除源项目和目标项目之前数据分布不一致的问题,成为跨项目软件缺陷预测的一个困难点。为了解决上述问题,本文构建的方法如下:首先将源项目和目标项目中的软件映射为图结构,并利用社区划分算法将图结构划分为子图。然后根据生成对抗思想构建一个改进的图神经网 ...
【技术保护点】
【技术特征摘要】
1.一种基于图结构的跨项目软件缺陷预测方法,其特征在于,包括步骤如下:S1:构建训练集和测试集:将软件项目分为源项目和目标项目,源项目中的类有标签,目标项目中的类没有标签,首先将所有软件项目映射为类依赖图,然后对类依赖图进行社区划分得到多个子图,最后获取类的软件缺陷度量元作为节点属性,其中训练集包括源项目的图结构信息、标签和目标项目的图结构信息,测试集为目标项目的图结构信息;S2:构建跨项目软件缺陷预测模型:模型是一个基于生成对抗思想改进的图神经网络,网络分为三个部分,分别为特征学习网络、判别网络和分类网络,特征学习网络分别与判别网络和分类网络相连,首先将图结构信息输入到特征学习网络,该网络利用图卷积层搭建而成,对类和类之间的结构信息进行学习得到类的特征向量,然后将特征向量分别输入到判别网络和分类网络,判别网络对源项目中类的特征向量和目标项目中类的特征向量进行辨别,同时利用源项目中类特征向量和标签训练分类网络;S3:模型训练:首先将源项目和目标项目经过S1处理后得到训练集和测试集,然后训练集输入到步骤S2的模型中进行训练,通过Adam优化器最小化损失函数,对特征学习网络、判别网络和分类网络进行参数调整,当判别网络无法辨别类是来自源项目还是目标项目,并且分类网络的损失值小于设定的值后停止训练;S4:模型测试:将S3中的测试集输入到训练好的模型中,每个类将得到一个是否有缺陷的标签;步骤S2所述的特征学习网络由图卷积层构成,通过图卷积的方式学习社区内节点与相邻节点的相互影响,节点表征向量更新公式如下:式(1)中v表示一个节点序号,v∈V
i
,节点的缺陷度量元表示为X
v
,表示第k层节点v的表征向量,k代表迭代的层次,N
(v)
表示v的一组相邻节点,在这初始化M...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。