[发明专利]基于学习算法实现缺陷修复推荐的方法在审

专利信息
申请号: 201910623765.3 申请日: 2019-07-11
公开(公告)号: CN110442514A 公开(公告)日: 2019-11-12
发明(设计)人: 孙小兵;朱轩锐;李斌 申请(专利权)人: 扬州大学
主分类号: G06F11/36 分类号: G06F11/36;G06K9/62;G06N3/04;G06N3/08
代理公司: 南京理工大学专利中心 32203 代理人: 马鲁晋
地址: 225009*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 修复 编辑操作 源代码 缺陷修复 向量特征 学习算法 细粒度 映射 语句 过滤 训练神经网络 筛选 抽象语法树 上下文关系 代码分析 模型特征 缺陷代码 语句识别 语义特征 解析器 抽象 后代
【权利要求书】:

1.一种基于学习算法实现缺陷修复推荐的方法,其特征在于,包括以下步骤:

步骤1、针对收集的bug修复前和修复后的源代码,分别通过GumTree进行抽象语法树AST提取,获得bug修复前、修复后代码各自的AST编辑操作序列;

步骤2、对AST编辑操作序列进行筛选过滤;

步骤3、结合筛选过滤后的AST编辑操作序列,利用解析器抽象bug修复前和修复后的源代码,并分别映射为向量特征表示;

步骤4、根据映射后的向量特征表示训练神经网络,获得缺陷语句识别模型,由此识别出缺陷语句;

步骤5、基于源代码的语义特征为步骤4识别出的缺陷语句推荐修复方案。

2.根据权利要求1所述的基于学习算法实现缺陷修复推荐的方法,其特征在于,步骤1所述对源代码进行AST提取,提取的AST的节点类型包括:

(1)方法调用和类实例创建节点;

(2)方法声明、类型声明和枚举声明节点;

(3)控制流节点,包括while语句、catch语句、if语句以及throw语句。

3.根据权利要求1所述的基于学习算法实现缺陷修复推荐的方法,其特征在于,步骤2所述筛选过滤具体为:滤除语法错误以及出现频率低于设定阈值的AST编辑操作序列。

4.根据权利要求1所述的基于学习算法实现缺陷修复推荐的方法,其特征在于,步骤3所述利用解析器抽象bug修复前和修复后的源代码,并分别映射为向量特征表示,具体为:

步骤3-1、利用分析器将源代码生成标记流;

步骤3-2、将标记流回馈到解析器中,对源代码中的每个标识符/文字产生一个唯一的ID并进行映射。

5.根据权利要求1所述的基于学习算法实现缺陷修复推荐的方法,其特征在于,步骤4所述神经网络具体为循环神经网络RNN。

6.根据权利要求1所述的基于学习算法实现缺陷修复推荐的方法,其特征在于,步骤5所述基于代码的语义特征为缺陷语句推荐修复方案,具体为:

根据缺陷语句在源代码中的上下文,结合下表1的细粒度修复模式,推荐相应的修复方案:该缺陷语句中X存在问题需修复或该缺陷语句中X的Y存在问题需修复,其中X、Y为①至中的任意一个;

表1 bug的修复模式

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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