论文部分内容阅读
在过去的二十年中,我们目睹了软件对人类社会日益增长的影响。这一趋势与Marc Andreessen在2011年发表的著名宣言“软件正在吞噬世界”相呼应。此外,软件定义的任何东西被Gartner确定为2014年的十大战略技术趋势之一,这意味着我们正在进入一个软件定义的信息社会新纪元。与专有软件相比,开源软件为软件开发和分发方式带来了根本性的转变。由于较低的成本、较强的安全性、不被供应商锁定、更好的质量等因素,越来越多的企业及公司采用开源软件产品作为它们的IT系统的重要组成部分。开源软件项目的缺陷管理和修复是保障其软件质量及软件开发效率的重要手段。目前,大多数大型的开源软件项目使用缺陷跟踪系统来对缺陷进行管理,如Bugzilla、GNATS等,缺陷跟踪系统主要完成对缺陷报告的记录、分析和状态更新等管理。软件开发人员、测试人员以及普通用户都能以缺陷报告的形式将缺陷提交至缺陷跟踪系统。但是,随着软件项目规模的不断增大,大量的缺陷被发现和提交,这导致缺陷的人工管理变得越来越困难,特别是如何将大量的缺陷及时分配给合适的开发者去修复。为了提高缺陷分配的效率、降低相应的人力和时间成本,到目前为止,已有不少的研究者提出了各种缺陷自动分配的方法。从使用的数据、算法、再分配图模型等维度,现有方法大致分为三类:基于文本内容、基于开发者关系和混合类型。但大多数已有方法认为,不管是参与分派和讨论缺陷的开发者还是最终修复缺陷的开发者都是对缺陷分派有贡献的人。因此,它们通常把所有与缺陷相关的开发者都看作是缺陷的标签,从而能够在预测时得到较高的召回率。针对缺陷的自动分派问题,本文首先提出了一种基于文本分类和评分机制的单一修复者的预测方法,其核心思想是综合考虑基于机器学习的文本分类和基于软件缺陷从属特征的评分机制来构建预测模型。针对大型开源软件项目Eclipse和Mozilla的十万级已修复软件缺陷的实验表明,在“十折”增量验证模式下,本文方法的最好平均准确率分别达到了 78.39%和64.94%,比基准方法(机器学习分类+再分配图)的最高平均准确率分别增加了 17.34%和10.82%,从而验证了其有效性。另外,我们根据缺陷的历史修复数据分析开发者之间的合作关系,计算分配概率,构建缺陷的分配概率图,然后结合文本分类和评分机制对与缺陷修复过程中涉及的开发者进行推荐。针对Eclipse和Mozilla两个开源项目的缺陷数据,取得了较高的推荐召回率,分别达到了 78.20%和71.98%。与FastText+评分机制+缺陷分配图基准方法相比,平均召回率分别增加了 25.53%和27.74%,同时也比ML-KNN+开发者相似度方法的最高平均召回率分别增加了 14.17%和13.25%,从而验证了该方法对缺陷所涉及的开发者推荐的有效性。