-
公开(公告)号:CN110442527B
公开(公告)日:2023-07-18
申请号:CN201910757075.7
申请日:2019-08-16
申请人: 扬州大学
摘要: 本发明提出了一种面向bug报告的自动化修复方法,属于软件维护领域。该方法首先在bug报告中使用缺陷定位技术,定位得到可疑bug语句块,根据其所在的函数提取函数关键信息,并使用DSL(领域特定语言)构造函数特征规约;接着抽取bug报告关键信息,使用DSL构造报告规约;然后构造一个“草案”,“草案”内包括可疑bug语句块所在的函数、函数特征规约以及报告规约;再基于“草案”搜索补丁数据库,返回相似度高的候选函数,抽取候选函数内代码片段作为候选补丁,将候选补丁替换可疑bug语句块并统一“草案”内函数变量的命名;最后基于报告规约中的输入输出测试集,单元测试“草案”中的函数,根据输出结果验证修复正确性。
-
公开(公告)号:CN110502361A
公开(公告)日:2019-11-26
申请号:CN201910806392.3
申请日:2019-08-29
申请人: 扬州大学
摘要: 本发明提出了软件维护领域内的一种面向bug报告的细粒度缺陷定位方法,包括以下步骤:首先基于历史bug报告得到缺陷描述特征向量,构建高频词语料库;抽取缺陷所在代码块,构造代码语义矩阵;将特征向量和代码语义矩阵输入神经网络,得到预测模型;根据功能相似的程序训练得到神经网络模型;对新bug报告进行一次语义相近词的替换,将替换后的特征向量输入到预测代码构造模型后输出代码语义矩阵;将新bug报告所对应的源代码划分成代码基本块,并分别编码成代码语义矩阵,构成代码语义矩阵列表;最后比较代码语义矩阵之间的相似性得到相似度最高的代码块,本发明将缺陷定位范围精确到代码基本块级别,能够使得软件缺陷修复工作更加高效。
-
公开(公告)号:CN110442527A
公开(公告)日:2019-11-12
申请号:CN201910757075.7
申请日:2019-08-16
申请人: 扬州大学
摘要: 本发明提出了一种面向bug报告的自动化修复方法,属于软件维护领域。该方法首先在bug报告中使用缺陷定位技术,定位得到可疑bug语句块,根据其所在的函数提取函数关键信息,并使用DSL(领域特定语言)构造函数特征规约;接着抽取bug报告关键信息,使用DSL构造报告规约;然后构造一个“草案”,“草案”内包括可疑bug语句块所在的函数、函数特征规约以及报告规约;再基于“草案”搜索补丁数据库,返回相似度高的候选函数,抽取候选函数内代码片段作为候选补丁,将候选补丁替换可疑bug语句块并统一“草案”内函数变量的命名;最后基于报告规约中的输入输出测试集,单元测试“草案”中的函数,根据输出结果验证修复正确性。
-
-