[发明专利]一种Github开源平台数据的获取方法及源代码缺陷修复系统有效

专利信息
申请号: 202110312352.0 申请日: 2021-03-24
公开(公告)号: CN113127339B 公开(公告)日: 2023-02-10
发明(设计)人: 房鼎益;范子茜;徐榕泽;赵佳琪;叶贵鑫;汤战勇 申请(专利权)人: 西北大学
主分类号: G06F11/36 分类号: G06F11/36;G06F8/41;G06N3/08;G06N3/0464
代理公司: 西安恒泰知识产权代理事务所 61216 代理人: 史玫
地址: 710069 *** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 github 平台 数据 获取 方法 源代码 缺陷 修复 系统
【说明书】:

发明公开了一种Github开源平台数据的获取方法及源代码缺陷修复系统,所公开的方法包括:首先对Github平台中的数据集进行预处理,得到符合要求的变更记录及其对应的Bug‑Fix文件对;然后根据变更记录提取Bug‑Fix函数对;对Bug‑Fix函数根据控制流切片以扩充训练数量,之后对网络进行训练获得缺陷分类模型和补丁生成模型。对于待修复的缺陷文件,处理得到该目标文件缺陷所在函数的向量后,先输入到缺陷相似性分类模型,得到和目标代码最相似的分类集合,然后选择该集合训练的补丁生成模型生成对应的修复补丁。解决了目前基于源码进行学习的缺陷修复技术中面临的数据集过小、数据集质量低下导致模型泛化能力差的问题;且能够达到更高的正确补丁生成率。

技术领域

本发明属于源代码审计领域,具体涉及一种Github开源平台数据的获取方法及源代码缺陷修复系统。

背景技术

软件缺陷,是指在计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷,又称为bug。

Github开源平台是目前流行的开源项目托管平台,Github中包含丰富的源代码数据、项目历史变更信息、缺陷修复信息等,并且具有实时更新的特点,使用Github上的数据可以为缺陷修复任务提供大量的缺陷修复信息。

现有从开源项目托管平台Github中获取数据的常用方法:根据简单的规则获取相关代码仓库的数据收集方法,例如Michele等人直接使用Google BigQuery APIs从Github中提取包含“fix”、“error”等简单关键字的数据,从而实现过滤其他不相关数据的目的。

现有技术仅使用API筛选的数据结果并不准确,由于Github中存在很多不规范的命名以及描述,关键词之间并不一定有联系,因此使用这种简单的模式匹配方法筛选数据无法避免一些低质量的数据,导致缺陷修复模型学习的特征有限,修复效率低下。

发明内容

针对现有技术的缺陷或不足,本发明一方面提供了一种Github开源平台数据的获取方法。为此,所提供的方法包括:

步骤1,获取Github开源平台的数据作为源数据,并筛选出源数据中的Type类型为“fix”的commit记录;

步骤2,删除Type类型为“fix”的commit记录中不符合缺陷修复正则表达式规则的commit记录;

步骤3,采用commit记录分类网络对步骤2获得的commit记录进行分类,获取包含单一修改意图的commit message的commit记录;所述commit记录分类网络是将commit记录分为包含单一修改意图的commit message的commit记录和包含多个修改意图的commitmessage的commit记录;

步骤4,删除步骤3所获得的commit记录中变更方法涉及多个项目文件的commit记录及变更范围大于1M的commit记录,并去重后得到获取的数据。

可选的,步骤1中根据fork数排序获取Github开源平台的数据作为源数据。

可选的,所述commit记录分类网络采用Bi-LSTM网络。

本发明还提供了一种源代码缺陷修复模型的构建方法。为此,本发明提供的构建方法包括:

Step1,采用上述方法获取数据;

Step2,对所获取的数据中的commit记录进行缺陷类型分类;

Step3,获取各种缺陷类型commit记录的变更前的文件对象Bug file和变更后的文件对象Fix file;

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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