当前位置:首页 > 全部子站 > 论文网 > 计算机论文

计算机论文:自动分析软件缺陷报告间相关性的方法研究

来源:长理培训发布时间:2017-06-21 14:24:41

  针对缺陷报告相关性分析的研究主要采用计算其文本信息相似度的方法使其查全率和查准率并不理想,提出了一种将结构化信息相似度与文本信息相似度计算相结合的方法,即同时提取出缺陷报告中的文本信息(包括主题和详细描述-以及结构化信息(包括补丁、异常堆栈和代码片段-,从缺陷外部表现和内部特征两个角度共同衡量缺陷报告间的相关性。通过对Eclipse系统中的1个缺陷报告进行实验,结果显示,增加结构化信息相似度计算,可以有效地将缺陷报告间相关性分析的查准率和查全率均提高到9%左右。

  随着软件项目规模的不断增长,使得维护工作日趋复杂。在软件生命周期中,通过对其进行不断的测试会产生各种各样的缺陷报告,很多软件系统直接基于这些缺陷报告进行软件维护工作。存储这些缺陷报告并进行合理管理的系统即为软件缺陷管理系统,如常用的开源软件缺陷管理系统Bugzilla。
  Bugzilla能够对软件缺陷进行具体记录,包括缺陷状态跟踪及缺陷修改过程等。它允许用户和开发或测试人员提交缺陷报告,由缺陷分流人员将缺陷报告分配给相关开发人员,由他们对缺陷进行修复,通过此过程保证软件系统的质量。Bugzi-lla中定义的缺陷报告包括一些预定义内容,如缺陷主题、缺陷描述、缺陷优先级、严重级、产品版本号、所属构件等。除此之外,开发人员或用户还可以针对缺陷进行讨论和添加附件信息,如补丁、异常堆栈或代码片段等。
  在软件开发和不断变更的整个生命周期中,将产生大量的缺陷报告,其中有许多报告是彼此相关的,甚至是重复的。例如Mozilla系统在23-25年产生的约27个缺陷报告中,重复缺陷报告约占36.3%;Eclipse系统在21-27年中共产生约213个缺陷报告。在这些缺陷报告中,约3%的缺陷报告是具有相关性的,其中约6%是重复缺陷报告。
  缺陷报告间的相关性主要体现在对缺陷的外部表现、产生原因、代码环境或解决方法等方面描述的相似性。这些相关的缺陷报告将被分流人员或开发人员标志为dependson或seebug,以便于开发人员根据这些关联,将相关的缺陷报告进行统一的分析和修改,以避免对该缺陷的修复而引起其他新的缺陷。缺陷的相关性分析也可以提供新报告缺陷的扩展信息或修复该缺陷的参考方法。除此之外,还有助于将缺陷报告分配或抄送给相关开发人员。
  传统的缺陷报告相关性分析是通过人工检测来完成,而大型软件系统在整个生命周期中将产生相当数量的缺陷报告,例如Eclipse系统,在27年中向Bugzilla提交了约42个缺陷报告,平均一天产生115个缺陷报告。在数据庞大的缺陷历史记录中分析缺陷报告间的相关性,需要耗费大量的时间和精力,所以自动分析软件缺陷报告间的相关性具有重要意义。
  相关的研究现状缺陷管理系统可以将软件测试过程中发现的缺陷、缺陷信息及缺陷发生的背景信息全面详细地记录下来,构成缺陷信息数据仓库。分析挖掘已有缺陷中的信息及其相关性,有助于指导软件测试工作,对提高缺陷发现率和改善软件质量是一种行之有效的方法。
  当前国内外对于缺陷报告的分析研究主要包括:对软件缺陷数据的分析。软件开发过程中的历史信息为缺陷分析提供了很有价值的经验数据,需要利用有效方法对这些数据进行如下缺陷分析:将缺陷报告中的属性值按照一元数据和多元数据进行分析,并说明缺陷数据分析对软件质量保证、项目管理和过程改进具有重要意义。
  通过文本挖掘。统计分析等方法,对软件缺陷预处理、缺陷分类和缺陷数据挖掘。软件缺陷分类的研究如下:缺陷分类是缺陷管理的基础。当前国内研究主要使用正交缺陷分类,并在正交缺陷分类的基础上制订出适合软件组织自身情况的软件缺陷分类方法。
  综上所述,当前对于缺陷报告间相关性的研究主要以计算缺陷报告间的文本相似度为主,并取得了显著的研究成果,但由于查全率和查准率并不十分理想,造成了一定的局限性。
  本文在当前研究的基础上,提取缺陷报告中的另一项有价值的信息---结构化信息,包括补丁、异常堆栈和代码片段。这项信息存储于附件列表或嵌套于文本描述中。通过统计,含有这些信息的缺陷报告具有相当数量,例如Eclipse系统21-27年中提交的约213个缺陷报告中,含有结构化信息的缺陷报告约占35%左右,补丁信息约占16%,异常堆栈信息约占14%,代码片段约占5%,这些结构化信息从不同角度记录了程序中与缺陷报告相关的某些内部特征。
  对比文本信息,结构化信息具有以下特点:a-更能反应缺陷的产生原因和代码环境,而不受自然语言多义性的影响;b-更能反映缺陷内部的本质,而这些可能是文本描述中没有提到的。本文利用文本相似度分析技术来处理缺陷报告的主题和详细描述,并结合对缺陷报告中的结构化信息的相似度分析,两者共同衡量缺陷报告间的相关性。
  相关缺陷报告在本章中,以Eclipse系统中的相关缺陷报告为例,解释需要结构化信息相似度与文本信息相似度来共同衡量缺陷报告间的相关性的原因。缺陷报告中的文本信息通常包括缺陷主题和详细描述两方面,为简要起见,在这里仅显示缺陷主题。
  结束语本文提出一种自动分析软件缺陷报告间相关性的方法,采用缺陷报告中的文本信息相似度和结构化信息包括补丁、代码片段和异常堆栈-相似度,从缺陷外部和内部来共同衡量缺陷报告间的相似度,从而分析缺陷报告间的相关性。本文从Eclipse系统中抽取了1个缺陷报告作为实验数据,结果显示:对比仅使用文本信息相似度来分析缺陷报告相关性的结果,增加结构化信息相似度计算可以在保证查准率9%左右的条件下,将查全率从4%提高到85%左右。缺陷报告间相关性的自动分析可以帮助开发人员根据这些关联,将相关的缺陷报告进行统一的分析和修改,以避免对该缺陷的修复而引起其他新的缺陷。缺陷的相关性分析也可以提供新报告缺陷的扩展信息或修复该缺陷的参考方法,从而有利于提高软件测试的效率和软件质量。
  本文提及的自动分析缺陷报告间相关性的技术也存在一些不足,例如对于代码片段信息,一些由缺陷提交人员编写的测试代码等,由于命名是随意的,会对代码片段间相似度的计算形成影响;另外,相关性阈值的设定问题也是影响查全率和查准率的重要因素,对此笔者将对不同的系统的缺陷报告进行实验,以便给用户较合理的阈值设定意见。
 

责编:古斯琪

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)
返回顶部