[发明专利]一种Github开源平台数据的获取方法及源代码缺陷修复系统有效
申请号: | 202110312352.0 | 申请日: | 2021-03-24 |
公开(公告)号: | CN113127339B | 公开(公告)日: | 2023-02-10 |
发明(设计)人: | 房鼎益;范子茜;徐榕泽;赵佳琪;叶贵鑫;汤战勇 | 申请(专利权)人: | 西北大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/41;G06N3/08;G06N3/0464 |
代理公司: | 西安恒泰知识产权代理事务所 61216 | 代理人: | 史玫 |
地址: | 710069 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 github 平台 数据 获取 方法 源代码 缺陷 修复 系统 | ||
1.一种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记录,并去重后得到获取的数据。
2.如权利要求1所述的Github开源平台数据的获取方法,其特征在于,步骤1中根据fork数排序获取Github开源平台的数据作为源数据。
3.如权利要求1所述的Github开源平台数据的获取方法,其特征在于,所述commit记录分类网络采用Bi-LSTM网络。
4.一种源代码缺陷修复模型的构建方法,其特征在于,方法包括:
Step1,采用权利要求1所述方法获取数据;
Step2,对所获取的数据中的commit记录进行缺陷类型分类;
Step3,获取各种缺陷类型commit记录的变更前的文件对象Bug file和变更后的文件对象Fix file;
Step4,对获取的所有变更前的文件对象Bug file和变更后的文件对象Fix file进行解析,提取Bug func和Fix func,之后进行切片得到Bug func的至少一个切片函数和Fixfunc的至少一个切片函数,所有commit记录的Bug func的切片函数和Fix func的切片函数构成训练集;
Step5,对各切片函数进行序列化和第一向量化处理后,以同一缺陷类型的Bug func的切片函数向量为源输入、Fix func的切片函数向量为输出目标对Encoder-Decoder网络进行训练,得到各缺陷类型的补丁生成模型;
采用基于AST路径的源代码向量化对Bug func的至少一个切片函数进行第二向量化处理后,以所有Bug func的切片函数的向量为输入,缺陷类型为标签对Bi-LSTM网络进行训练得到源代码缺陷分类模型。
5.如权利要求4所述的源代码缺陷修复模型的构建方法,其特征在于,Step2中具体根据缺陷类型的关键字进行分类;所述缺陷类型采用CWE描述的缺陷类型。
6.如权利要求4所述的源代码缺陷修复模型的构建方法,其特征在于,Step5中采用分词算法对各切片函数进行序列化,接着采用Word2Vec方法对序列化结果进行第一向量化处理。
7.一种源代码缺陷修复模型修复系统,其特征在于,所述系统包括:
数据预处理模块、权利要求4所构建的源代码缺陷分类模型和各缺陷类型的补丁生成模型;所述数据预处理模块对待修复的源代码缺陷定位及预处理获得所述源代码缺陷分类模型和各缺陷类型的补丁生成模型可识别的输入数据。
8.一种源代码缺陷修复模型修复方法,其特征在于,方法包括:
对待修复的源代码的进行缺陷定位,之后对缺陷所在数据进行预处理;
采用权利要求4所构建的源代码缺陷分类模型对预处理后的数据进行缺陷分类;
对分类后的数据进行解析、切片、序列化和第一向量化处理后,输入权利要求4所构建的各缺陷类型的补丁生成模型进行修复。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北大学,未经西北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110312352.0/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置