[发明专利]一种基于Github的软件缺陷检测模型建立、检测方法及系统有效

专利信息
申请号: 202010140642.7 申请日: 2020-03-03
公开(公告)号: CN111459799B 公开(公告)日: 2023-03-10
发明(设计)人: 柯鑫;叶贵鑫;汤战勇;尹小燕;龚晓庆;房鼎益 申请(专利权)人: 西北大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 西安恒泰知识产权代理事务所 61216 代理人: 李婷;金艳婷
地址: 710069 *** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 github 软件 缺陷 检测 模型 建立 方法 系统
【权利要求书】:

1.一种基于Github的软件缺陷检测模型建立方法,其特征在于,包括以下步骤:

步骤1,数据预处理:

对Github中的仓库进行排序,选取排名靠前的仓库作为源数据集,对源数据集中的每个仓库的变更记录进行筛选和去重,得到符合要求的变更记录及其对应的Bug-Fix文件对;

所述Bug-Fix文件对是指修改前的文件Bug file和修改后的文件Fixed file;

步骤2,对步骤1得到的符合要求的变更记录及其对应的Bug-Fix文件对进行处理,生成切片的向量及标签:

步骤2.1,对步骤1得到的符合要求的变更记录的Bug-Fix文件对进行解析和比对,获得每个变更记录对应的增加和删除的代码行信息;

步骤2.2,根据步骤2.1获得的增加和删除的代码行信息及其Bug-Fix文件对的数据流,确定每一个变更记录导致缺陷的缺陷代码行;

步骤2.3,根据步骤1得到的符合要求的变更记录的Bug-Fix文件对的数据流和控制流信息,生成Bug-Fix文件对的切片;

步骤2.4,根据步骤2.2确定的缺陷代码行,对步骤2.3得到的Bug-Fix文件对的切片添加标签;

步骤2.5,对步骤2.3得到的Bug-Fix文件对的切片逐个进行变量名替换,替换为一个统一的令牌;

步骤2.6,对步骤2.5替换过变量名的切片逐个进行分词处理,每个切片得到一个令牌序列;

步骤2.7,将步骤2.6得到的每一个令牌序列转化为向量;

步骤3,模型训练:

将步骤2得到的切片的向量及标签输入到双向LSTM模型中进行训练和学习,得到训练好的检测模型。

2.如权利要求1所述的基于Github的软件缺陷检测模型建立方法,其特征在于,所述的步骤1具体包括:

步骤1.1,对Github中的仓库按照仓库的影响因子fork由大到小进行排序,选取排名前30%~35%的仓库作为源数据集;

步骤1.2,采用关键字搜索方法对源数据集中的每个仓库的变更记录进行筛选,得到具有不同缺陷类型的变更记录;

步骤1.3,过滤掉步骤1.2得到的具有不同缺陷类型的变更记录中不符合动词/直接宾语模式的变更记录;

步骤1.4,采用TextRank技术对步骤1.3得到的变更记录进行再筛选,剔除掉混合型变更记录;

所述TextRank技术是指TextRank算法,采用TextRank技术对步骤1.3得到的变更记录进行筛选的具体方法是:将步骤1.3得到的变更记录输入到TextRank算法中,抽取出来的关键词前五中如果包含步骤1.2中涉及到的关键词,认为这一条变更记录是符合要求的,进入步骤1.5,否则删除;

步骤1.5,对步骤1.4得到的变更记录进行去重,得到符合要求的变更记录及其对应的Bug-Fix文件对。

3.如权利要求1所述的基于Github的软件缺陷检测模型建立方法,其特征在于,所述的步骤2.4中,在添加标签过程中,包含缺陷代码行的切片标记为0,不包含缺陷代码行的切片标记为1。

4.如权利要求1所述的基于Github的软件缺陷检测模型建立方法,其特征在于,所述的步骤2.7中,使用word2vec工具将每一个令牌序列转化为向量。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北大学,未经西北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010140642.7/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top