面向bug报告的自动化修复方法

    公开(公告)号:CN110442527B

    公开(公告)日:2023-07-18

    申请号:CN201910757075.7

    申请日:2019-08-16

    申请人: 扬州大学

    IPC分类号: G06F11/36 G06F11/07

    摘要: 本发明提出了一种面向bug报告的自动化修复方法,属于软件维护领域。该方法首先在bug报告中使用缺陷定位技术,定位得到可疑bug语句块,根据其所在的函数提取函数关键信息,并使用DSL(领域特定语言)构造函数特征规约;接着抽取bug报告关键信息,使用DSL构造报告规约;然后构造一个“草案”,“草案”内包括可疑bug语句块所在的函数、函数特征规约以及报告规约;再基于“草案”搜索补丁数据库,返回相似度高的候选函数,抽取候选函数内代码片段作为候选补丁,将候选补丁替换可疑bug语句块并统一“草案”内函数变量的命名;最后基于报告规约中的输入输出测试集,单元测试“草案”中的函数,根据输出结果验证修复正确性。

    面向bug报告的细粒度缺陷定位方法

    公开(公告)号:CN110502361A

    公开(公告)日:2019-11-26

    申请号:CN201910806392.3

    申请日:2019-08-29

    申请人: 扬州大学

    IPC分类号: G06F11/07 G06F11/36

    摘要: 本发明提出了软件维护领域内的一种面向bug报告的细粒度缺陷定位方法,包括以下步骤:首先基于历史bug报告得到缺陷描述特征向量,构建高频词语料库;抽取缺陷所在代码块,构造代码语义矩阵;将特征向量和代码语义矩阵输入神经网络,得到预测模型;根据功能相似的程序训练得到神经网络模型;对新bug报告进行一次语义相近词的替换,将替换后的特征向量输入到预测代码构造模型后输出代码语义矩阵;将新bug报告所对应的源代码划分成代码基本块,并分别编码成代码语义矩阵,构成代码语义矩阵列表;最后比较代码语义矩阵之间的相似性得到相似度最高的代码块,本发明将缺陷定位范围精确到代码基本块级别,能够使得软件缺陷修复工作更加高效。

    面向bug报告的自动化修复方法
    3.
    发明公开

    公开(公告)号:CN110442527A

    公开(公告)日:2019-11-12

    申请号:CN201910757075.7

    申请日:2019-08-16

    申请人: 扬州大学

    IPC分类号: G06F11/36 G06F11/07

    摘要: 本发明提出了一种面向bug报告的自动化修复方法,属于软件维护领域。该方法首先在bug报告中使用缺陷定位技术,定位得到可疑bug语句块,根据其所在的函数提取函数关键信息,并使用DSL(领域特定语言)构造函数特征规约;接着抽取bug报告关键信息,使用DSL构造报告规约;然后构造一个“草案”,“草案”内包括可疑bug语句块所在的函数、函数特征规约以及报告规约;再基于“草案”搜索补丁数据库,返回相似度高的候选函数,抽取候选函数内代码片段作为候选补丁,将候选补丁替换可疑bug语句块并统一“草案”内函数变量的命名;最后基于报告规约中的输入输出测试集,单元测试“草案”中的函数,根据输出结果验证修复正确性。