[发明专利]一种基于对抗判别的跨软件缺陷预测方法有效
申请号: | 202010056839.2 | 申请日: | 2020-01-16 |
公开(公告)号: | CN111290947B | 公开(公告)日: | 2022-06-14 |
发明(设计)人: | 陆璐;盛雷 | 申请(专利权)人: | 华南理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 广州市华学知识产权代理有限公司 44245 | 代理人: | 陈宏升 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 对抗 别的 软件 缺陷 预测 方法 | ||
1.一种基于对抗判别的跨软件缺陷预测方法,其特征在于,包括以下步骤:
1)从开源项目中选择一成熟项目作为源项目,需要进行缺陷预测的项目作为目标项目;
2)将步骤1)中选择的源项目和目标项目中的源代码转换成抽象语法树,提取出节点向量集合;
3)对节点进行编码,将步骤2)中得到的节点向量集合转换成后续所需要的整数向量集合;在编码转换过程中,同时将源项目和目标项目进行编码,首先统计源代码中节点类型总数;然后将每个节点类型与唯一一个整数形成映射关系,该编码从1开始,直到达到节点类型总数;最后将每一个节点向量根据映射关系转换成整数向量,同时对于节点向量长度小于最长节点向量长度的向量在尾部进行补0;同时,在转换过程中,为了保留更多的可迁移信息,只舍去出现次数小于3次的节点类型;
4)采用随机过采样的方式对步骤3)中得到的源项目中整数向量集合进行处理,解决源项目中的分类不平衡的问题;
5)采用对抗判别学习用步骤4)平衡后的整数向量集合同时训练出源项目特征提取器和目标项目特征提取器;
6)用步骤5)训练得到的源项目特征提取器和目标项目特征提取器,提取出源项目和目标项目中的能够迁移的代码语义特征;
7)将步骤6)中的源项目能够迁移的代码语义特征输入到逻辑回归分类器中,训练出跨软件缺陷预测模型,将缺陷预测模型应用到目标项目上,进行缺陷预测分类;
步骤7)中,所述跨软件缺陷预测模型,具体训练步骤如下:
701、设计卷积神经网络模型:采用的卷积神经网络模型包括一个输入层,一个词嵌入层,一个卷积层,一个最大池化层,两个完全连接的隐含层,其中最后一个隐含层的输出作为模型从整数向量集合中学习出来的特征;
702、利用步骤701中设计的卷积神经网络模型,用分类平衡后的源项目整数向量和文件的标签信息训练源项目特征提取器;
703、将步骤702中源项目特征提取器的参数信息作为目标项目特征提取器的初始化参数,并且设计一个判别器,包含一个完全连接的隐含层和一个单独单元的输出层;
704、固定住源项目特征提取器的参数,用对抗判别的方式将以上得到的整数向量集合作为输入,同时训练目标项目特征提取器和判别器的权重和偏差,因此,源项目和目标项目特征提取器都能提取出能够迁移的代码语义特征。
2.根据权利要求1所述基于对抗判别的跨软件缺陷预测方法,其特征在于,步骤703中,所述源项目特征提取器的参数信息包括权重和偏差。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010056839.2/1.html,转载请声明来源钻瓜专利网。