[发明专利]一种代码方法级别的软件缺陷定位方法有效
申请号: | 202010087773.3 | 申请日: | 2020-02-12 |
公开(公告)号: | CN111309607B | 公开(公告)日: | 2023-06-02 |
发明(设计)人: | 李斌;陈天浩;孙小兵;倪珍 | 申请(专利权)人: | 扬州大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F11/07;G06F16/35 |
代理公司: | 南京理工大学专利中心 32203 | 代理人: | 马鲁晋 |
地址: | 225009*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 方法 级别 软件 缺陷 定位 | ||
本发明公开了一种代码方法级别的软件缺陷定位方法,属于软件维护领域,该方法包括:构建并训练seq2seq模型;基于seq2seq模型构建缺陷定位模型;构建缺陷定位模型的训练样本;利用训练样本训练缺陷定位模型;利用训练后的缺陷定位模型预测缺陷报告中的缺陷方法。本发明提出的方法采用历史数据和深度学习技术相结合训练一个缺陷定位模型,并利用seq2seq模型确定该缺陷定位模型中代码编码器的参数,将代码方法注释作为监督信息,信息量丰富,很好地达到了在方法级别上定位软件缺陷的目的,能极大提升软件缺陷修复的效率。
技术领域
本发明属于软件维护领域,特别涉及一种代码方法级别的软件缺陷定位方法。
背景技术
开发过程中,缺陷的产生是无法避免的。在传统的开发过程中,当软件测试人员或软件使用者发现缺陷后,会在缺陷跟踪管理系统中编写缺陷报告告知软件开发、维护人员。缺陷报告记录了程序缺陷的报告时间、严重程度、异常的程序表现以及如何重现软件缺陷的细节。软件开发人员和维护人员需要根据提交的缺陷报告人工确定缺陷位置,以修复该缺陷。在实际缺陷修复过程中,修复者往往会在缺陷定位这一环节中花费大量时间。
随着软件行业的发展,软件功能越来越复杂,软件代码行数迅速增加,一方面缺陷的数量也随代码行数的增长而增长,另一方面代码行数的增加也导致人工定位缺陷更加困难。因此如何实现自动定位缺陷位置,以应对不断增长的缺陷数量和代码规模,从而提高软件修复效率与质量,成为研究人员关注的热点之一。
目前缺陷定位领域已有不少先进技术。第一类称为基于程序频谱的缺陷定位方法,其是通过搜集测试用例的程序频谱和执行结果,定位缺陷语句在被测程序中的可能位置,这类方法是语句级别的缺陷定位,需要提供若干个通过的测试用例和至少一个未通过的测试用例。第二类缺陷定位技术,是通过使用代码分段技术和Stack Trace信息分析来提高缺陷定位性能。第三类缺陷定位技术,是基于缺陷报告,通过信息检索领域的方法和项目中历史缺陷的修复信息,寻找与缺陷报告相似的文件,进而实现文件级别的缺陷定位。但目前这类研究都将缺陷报告和源代码文件看作是“词包”,虽然同一个词在缺陷报告和代码中语义往往是相似的,但只关注两者之间单词的相似程度,会丢失文本的顺序信息,因而导致丢失一部分语义信息,这对缺陷定位的效果产生了负面影响。
发明内容
本发明的目的在于提供一种实现对缺陷报告进行细粒度的自动定位,以帮助缺陷修复人员快速找到该缺陷产生的位置,提高缺陷修复效率的软件缺陷定位方法。
实现本发明目的的技术解决方案为:一种代码方法级别的软件缺陷定位方法,所述方法包括以下步骤:
步骤1,构建并训练seq2seq模型;
步骤2,基于seq2seq模型构建缺陷定位模型;
步骤3,构建所述缺陷定位模型的训练样本;
步骤4,利用所述训练样本训练所述缺陷定位模型;
步骤5,利用训练后的缺陷定位模型预测缺陷报告中的缺陷方法。
进一步地,步骤1中所述seq2seq模型包括一个编码器和一个解码器,其中编码器包括依次设置的输入层、嵌入层、门控循环神经网络GRU层,解码器包括一个全连接层实现注意力机制、一个GRU层和一个softmax层;
步骤1中所述训练seq2seq模型,具体是利用项目代码库中包含方法注释的缺陷方法对seq2seq模型进行训练。
进一步地,步骤2中所述缺陷定位模型包括:
一个代码编码器,用于将方法代码转换为向量;
一个缺陷报告编码器,用于将缺陷报告转换为向量;
一个融合层,用于融合上述两个向量,获得两个向量的关联程度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于扬州大学,未经扬州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010087773.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种调整座椅使用状态的智能控制方法
- 下一篇:信息显示方法、装置及电子设备