论文部分内容阅读
随着软件的规模和复杂度不断增大,软件中包含缺陷的概率也越来越大。软件的不正常运行会给生产和生活带来严重的影响,因此软件缺陷的快速定位和修复是至关重要的。传统的缺陷定位方法需要分析缺陷报告的内容,审查源文件代码,设计测试用例并执行被测程序,分析程序变量和执行结果,最后定位缺陷语句。人工完成这些工作将耗费大量的时间和精力,并且在大规模软件系统中也不太可行。为了减轻开发人员负担,降低人力成本,自动化缺陷定位方法被提出,通过计算机技术实现对缺陷报告和源文件的解析、提取特征并定位缺陷文件,实现在最小的人工干预下给开发者定位软件缺陷。本文在静态缺陷定位方法的基础上,将缺陷定位问题当作判断源文件是否与缺陷报告相关的多分类问题,提出了一个基于标签传播的软件缺陷定位框架GBLocator。框架实现了对缺陷报告和源文件结构与内容的分析,从缺陷报告与缺陷报告、缺陷报告与源文件、源文件与源文件三个角度提取特征,建立一个表示缺陷报告和源文件关系的图模型,通过对缺陷报告的分类结果进行排序从而实现对缺陷文件的定位。本文的主要工作概括如下:1.对软件缺陷定位的现状进行了详细描述。本文首先对软件缺陷定位的过程以及存在的问题进行了介绍,然后详细描述了软件缺陷定位的现状,并总结了现有的软件缺陷定位方法。2.提出了一种基于标签传播的软件缺陷定位方法。为了实现对缺陷报告的自动化缺陷定位,本文提出了一种基于标签传播的软件缺陷定位方法。本文从初始的缺陷报告出发,提取多个特征,构建一个表现缺陷报告和源文件关系的图模型,最后通过定义一个目标函数来优化标签传播的过程,有效利用各种信息提高软件缺陷定位的准确率。3.对GBLocator方法的有效性进行了实证研究。为了验证GBLocator方法在软件缺陷定位领域的有效性,本文在swt、aspectj、eclipse三个开源数据集上进行了实证研究,并与其它软件缺陷定位方法进行比较。另外,我们还设计实验对影响GBLocator缺陷定位性能的因素进行探究。