一种基于缺陷报告噪音剔除和关键词扩充的缺陷定位方法技术

技术编号:39240630 阅读:10 留言:0更新日期:2023-10-30 11:53
本发明专利技术公开了一种基于缺陷报告噪音剔除和关键词扩充的缺陷定位方法,通过提高缺陷报告质量解决现有方法在抽取缺陷报告语义时忽略了文本噪音处理以及语义鸿沟的问题,属于缺陷定位领域。该方法首先通过抽取异常关键词和特征选择的方式,对缺陷报告的堆栈信息和刨除堆栈信息的详细问题描述进行噪音剔除;接着使用去噪后的缺陷报告作为初始查询,分别运行三种主流的基于信息检索的缺陷定位技术,并使用AdaBoost合并预测结果,再从该集成的缺陷文件推荐列表文件中抽取词频大于10%的关键词来扩充缺陷报告文本;最后使用词嵌入模型Word2Vec对缺陷报告和源代码文件抽取语义特征,比较其余弦相似性,生成最终的缺陷文件推荐列表,以完成缺陷定位。以完成缺陷定位。以完成缺陷定位。

【技术实现步骤摘要】
一种基于缺陷报告噪音剔除和关键词扩充的缺陷定位方法


[0001]本专利技术公开了一种基于缺陷报告噪音剔除和关键词扩充的缺陷定位方法,方法包含三个阶段:1)噪音剔除;2)关键词扩充;3)语义相似比较。主要通过提高缺陷报告质量来实现更好的缺陷定位,解决现有方法在抽取缺陷报告语义时忽略了噪音处理以及文本内容不够丰富的问题。属于软件开发过程中缺陷定位与修复


技术介绍

[0002]软件缺陷通常会伴随软件产品的整个生命周期。对于一个大型并且不断发展的软件系统,其项目团队可能会很长一段时间内收到大量的缺陷报告。软件维护人员需要阅读缺陷报告,理解缺陷,并从代码库中查找与该缺陷报告描述内容相关的源代码文件,也可能是某个类或方法或是具体某个代码元素,来确定产生该缺陷的位置。现有的解决方法可以根据是否运行测试用例分成两类:静态缺陷定位和动态缺陷定位。
[0003]而对于一个包含数百甚至数千个文件的大型项目来说,手工进行缺陷定位是一项费时费力的工作,会导致缺陷修复时间延长,维护成本增加,用户满意度降低。于是为了帮助开发人员快速找到缺陷位置,研究人员们提出了多种自动化缺陷定位技术。在一定程度上来说,由于大量研究已经对代码库和缺陷报告中的相关特征进行了比较充分的挖掘,很难再提取新的特征来改良IRBL方法。研究者从改善查询的角度提出了查询重构的策略来提升性能。
[0004]由于用户经验不足等原因,软件尤其是开源软件的缺陷报告往往包含了噪音,而现有研究在抽取缺陷报告语义时忽略了对噪音的处理。并根据观察和已有研究表明,堆栈信息里往往包含大量log信息,而与软件问题域有直接关系的往往只是其中的部分元素(包括异常类型、所涉及到的函数调用等)。其他不相干的信息如果不加以剔除直接输入到定位模型中,将成为噪音而影响定位效果。本专利技术从缺陷报告的质量出发,通过改进质量以增强对缺陷报告的语义抽取。具体地,本专利技术对缺陷报告的两类关键信息,即堆栈信息和刨除堆栈信息的详细问题描述进行噪音的剔除。堆栈信息的噪音剔除主要通过抽取异常关键词的方式进行,而详细问题描述则主要使用特征选择的方法进行噪音处理。
[0005]已有研究表明,在缺陷报告中的自然语言文本和源代码文件中的编程语言之间存在着严重的内在词汇不匹配,即语义鸿沟问题。为了弥补该问题影响,本专利技术利用现有主流的三种基于信息检索的缺陷定位技术从集成的缺陷文件推荐列表中抽取关键词来扩充缺陷报告的详细问题文本描述,对缺陷报告进行重构提高报告质量。
[0006]相较于现有技术使用的如VSM、LDA等模型,词嵌入模型充分考虑了词的上下文信息从而能更准确地抽取词的语义特征。本专利技术利用词嵌入模型对经过去噪后和扩充后的的缺陷报告文本以及源代码文件进行语义表达,进一步抽取语义特征,使用能较好表达文本语义的词嵌入模型对其进行语义挖掘。

技术实现思路

[0007]为了解决现有缺陷定位方法在抽取缺陷报告语义时忽略了对噪音的处理以及存在着语义鸿沟的问题,本专利技术提出了一种基于缺陷报告噪音剔除和关键词扩充的缺陷定位方法,旨在通过提高缺陷报告的质量以及更好的语义抽取方式来实现更优的缺陷定位性能。对于缺陷报告的文本内容进行噪音识别和剔除,并使用堆栈信息中的关键词来更好地表达堆栈信息中与软件问题相关的部分,同时利用现有主流的三种基于信息检索的缺陷定位技术来扩充缺陷报告的详细问题文本描述,并使用词嵌入模型抽取语义特征,以增强对缺陷报告问题语义的抽取,完成缺陷定位。
[0008]本专利技术方案主要包括以下内容:
[0009]一种基于缺陷报告噪音剔除和关键词扩充的缺陷定位方法,其特征在于,包括以下三个步骤:
[0010]步骤1,噪音剔除阶段,对缺陷报告的两类关键信息,即堆栈信息和刨除堆栈信息的详细问题描述进行噪音的剔除。堆栈信息的噪音剔除主要通过抽取异常关键词的方式进行,而刨除堆栈信息的详细问题描述则主要使用特征选择的方法进行噪音处理;
[0011]步骤2,关键词扩充阶段,使用去噪后的缺陷报告作为初始查询,分别运行三种主流的基于信息检索的缺陷定位技术,并使用AdaBoost将三个预测结果合并为一个缺陷文件推荐列表,再从该列表文件中抽取词频大于10%的关键词来扩充缺陷报告文本;
[0012]步骤3,语义相似比较阶段,使用词嵌入模型Word2Vec对缺陷报告和源代码文件抽取语义特征,比较其余弦相似性,生成最终的缺陷文件推荐列表,以完成缺陷定位。
[0013]进一步,所述步骤1噪音剔除阶段中,其主要包括以下2个步骤:
[0014]对于堆栈信息的噪音剔除主要通过抽取异常关键词的方式进行,抽取与问题直接相关的错误类型,如Out of Bound,Divide by Zero等,以及离异常抛出位置较近的堆栈信息中的函数调用、类名、路径这些关键词;
[0015]对于刨除堆栈信息的详细问题描述主要使用特征选择的方法进行噪音处理,对详细问题描述进行标准预处理化,包括分词、去茎化、统一小写化,再对每个词计算其词频

逆文档频率,去除词频

逆文档频率小0.1的词。
[0016]进一步,所述步骤2关键词扩充阶段中,其主要包括以下2个步骤:
[0017]分别运行三种主流的基于信息检索的缺陷定位技术,包括BugLocator、LR和Blizzard,以生成三个缺陷文件TOP10推荐列表,并使用AdaBoost将三个预测结果合并为一个缺陷文件推荐列表;
[0018]从上述生成的缺陷文件推荐列表中的文件中抽取词频大于10%的关键词来扩充缺陷报告的详细问题描述文本。
[0019]进一步,所述步骤3语义相似比较阶段中,使用词嵌入模型Word2Vec对经过去噪和扩充后的缺陷报告和其对应的源代码文件抽取语义特征,比较两两间余弦相似性,按照相似性降序排列,生成最终的缺陷文件推荐列表,以完成缺陷定位。
[0020]本专利技术采用以上技术方案与现有技术相比,具有以下技术效果:
[0021]1)本专利技术提出了一种新的基于缺陷报告噪音剔除和关键词扩充的缺陷定位方法,该方法能通过提高缺陷报告的质量以及更好的语义抽取方式来实现更优的缺陷定位性能。
[0022]2)本专利技术考虑了在抽取缺陷报告语义时对噪音的处理,使用堆栈信息中的关键词
来更好地表达其与软件问题相关的部分,并利用三种主流的基于信息检索的缺陷定位技术来扩充缺陷报告的详细问题文本描述。与直接抽取原始缺陷报告语义的现有技术不同,充分考虑了缺陷报告本身的质量问题,能有效提高缺陷报告文本质量。
[0023]3)本专利技术使用词嵌入模型Word2Vec充分考虑词的上下文,相较于以往的基于重构缺陷报告质量的缺陷定位技术,能够更有效地提高缺陷报告质量,更准确地抽取词的语义特征,从而实现更优的缺陷定位性能。
附图说明
[0024]图1为本方法的整体框架图。
[0025]图2为本方法的流程图。
具体实施方式
[0026]以下结合附图1、2对本专利技术的技术方案做本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于缺陷报告噪音剔除和关键词扩充的缺陷定位方法,其特征在于,包括以下三个步骤:步骤1,噪音剔除阶段,对缺陷报告的两类关键信息,即堆栈信息和刨除堆栈信息的详细问题描述进行噪音的剔除。堆栈信息的噪音剔除主要通过抽取异常关键词的方式进行,而刨除堆栈信息的详细问题描述则主要使用特征选择的方法进行噪音处理;步骤2,关键词扩充阶段,使用去噪后的缺陷报告作为初始查询,分别运行三种主流的基于信息检索的缺陷定位技术,并使用AdaBoost将三个预测结果合并为一个缺陷文件推荐列表,再从该列表文件中抽取词频大于10%的关键词来扩充缺陷报告文本;步骤3,语义相似比较阶段,使用词嵌入模型Word2Vec对缺陷报告和源代码文件抽取语义特征,比较其余弦相似性,生成最终的缺陷文件推荐列表,以完成缺陷定位。2.根据权利要求1所述的基于缺陷报告噪音剔除和关键词扩充的缺陷定位方法,其特征在于,所述步骤1噪音剔除阶段中,其主要包括以下2个步骤:对于堆栈信息的噪音剔除主要通过抽取异常关键词的方式进行,抽取与问题直接相关的错误类型,如Out of Bound,Divide by Zero等,以及离异常抛出位置较近的堆栈信息中的函数调用...

【专利技术属性】
技术研发人员:邹卫琴王昭丹
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1