[发明专利]一种基于深度迁移的软件缺陷预测方法有效
| 申请号: | 201910446546.2 | 申请日: | 2019-05-27 | 
| 公开(公告)号: | CN110162475B | 公开(公告)日: | 2023-04-18 | 
| 发明(设计)人: | 陈晋音;胡可科;刘毅;宣琦 | 申请(专利权)人: | 浙江工业大学 | 
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F18/214;G06Q10/04;G06N3/0464 | 
| 代理公司: | 杭州天勤知识产权代理有限公司 33224 | 代理人: | 胡红娟;曹兆霞 | 
| 地址: | 310014 浙*** | 国省代码: | 浙江;33 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 一种 基于 深度 迁移 软件 缺陷 预测 方法 | ||
本发明公开了一种基于深度迁移的软件缺陷预测方法,包括:(1)采用可视化方法将源项目和目标项目的源代码文件转化为图像文件;(2)构建深度迁移网络,其中,所述深度迁移网络包含提取单元和软件缺陷预测单元,并在特征提取单元采用自注意力机制;(3)根据采用自注意力机制提取的训练样本特征和测试样本特征之间的最大均值差异,和深度迁移网络的预测输出与样本的真值标签自检的交叉熵构建损失函数,并以损失函数收敛为目标,对深度迁移网络进行训练,以获得软件缺陷预测模型;(4)应用时,采用可视化方法将待检测源代码文件转化为图像,并将图像输入至软件缺陷预测模型,经计算,输出待检测源代码文件的缺陷预测结果。
技术领域
本发明属于软件缺陷预测领域,具体涉及一种基于深度迁移的软件缺陷预测方法。
背景技术
软件缺陷预测可分为项目内缺陷预测和跨项目缺陷预测。项目内缺陷预测需要大量该项目内已知是否有缺陷的样本,如文件、类和函数等,将其作为训练集,结合机器学习的方法生成分类器后对目标样本进行预测。跨项目缺陷预测则能够根据其他相关项目的样本对目标项目进行缺陷预测。现实开发过程中由于目标项目太新或者获取标签的成本过高,导致目标项目内训练样本过少,常常需要进行跨项目缺陷预测。
目前缺陷预测方法主要有基于传统机器学习和基于深度学习这两种,前者需要利用特征工程对源代码文件进行特征提取后进一步采用机器学习分类模型进行预测,后者直接将源代码文件作为深度学习模型的输入从而端到端地输出缺陷预测结果。其中由于深度学习在许多领域的出色表现,如何利用深度学习进行软件缺陷预测成为了当前的研究热点。利用深度学习进行缺陷预测的难点在于:一是如何将缺陷文件输入到深度模型中;二是由于目标项目与源项目开发过程的不同,两者样本分布往往存在差异,直接影响预测效果,怎样减少这方面的障碍。
为了将缺陷样本输入到深度模型中,目前最主要的方法是利用语法分析树(AST)对源代码文件进行关键词提取,将代码文件转换为语法序列输入到深度模型中。Wang等人利用深度置信网络对语法序列进行特征提取,然后构建基于机器学习的分类器进行分类从而进行缺陷预测;相似地,Li等人利用基于卷积神经网络的深度模型对语法序列提取特征后与原传统的人工提取特征一起作为机器学习模型的输入进行缺陷预测;Dam等人利用长短记忆网络作为深度模型,将语法序列作为输入后直接获得预测结果。以上方法都基于利用AST提取的语法序列进行缺陷预测操作,获得AST信息需要额外的工具,增加操作的困难并且降低了效率。
另外,为了解决跨域样本分布差异较大的问题,迁移学习被引入到深度学习中,称为深度迁移学习。深度迁移学习方法主要可以分为基于映射和基于对抗两种,前者将源项目和目标项目的样本通过深度模型映射到同一个潜在的特征空间使得两者样本分布变得相似,后者通过样本生成器和判别器的对抗学习策略使得最终的样本分布相似,两者都可以解决源项目与目标项目样本分布不同的问题。Long等人利用最大均值差异(MMD)来衡量两个域之间样本分布的差异并在已有深度网络结构上根据计算MMD的策略不同提出了DAN和JAN两种深度迁移模型;Ajakan等人通过在损失函数中添加域适应正则化项提出了一种基于对抗的深度迁移学习方法。但是上述方法均未被用与软件缺陷的预测。
总的来说,目前的软件缺陷预测方法存在以下几个问题:在软件缺陷预测中,如何发挥深度学习强大的表征能力,从而提升对缺陷预测问题更好的解决;迁移学习对于跨项目缺陷预测十分重要,如何使得迁移学习方法充分利用源项目的有用信息,从而提升对目标项目的缺陷预测性能。
发明内容
鉴于上述,本发明提出了一种基于深度迁移的软件缺陷预测方法,该方法能够较准确地实现端到端的软件缺陷预测。
本发明的技术方案为:
一种基于深度迁移的软件缺陷预测方法,包括以下步骤:
(1)采用可视化方法将源项目和目标项目的源代码文件转化为图像文件,转化时,针对源项目的源代码文件,采用三原色排列组合策略对图像进行扩充,形成训练集;将目标项目的源代码文件转化为图像文件作为测试集;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910446546.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于抽象语法树的智能合约重入漏洞检测方法
 - 下一篇:测试方法及装置
 





