统一的缺陷报告分配框架
- 论文下载地址: 下载链接
- 作者: Yuan Zhao, Tieke He, Zhenyu Chen
- 学校: 南京大学
- 发表: The Journal of Systems and Software
- 发表年份: 2019年
- 关键词: Software bug analysis ,Named entity recognition,Software bug corpus
摘要
这篇文章介绍了一个统一的框架,用于解决软件缺陷报告的分配问题,这些报告来自传统渠道、众包测试和移动应用测试等不同来源。文章定义了缺陷报告的三个关键属性:标识符、文本描述和开发人员,并旨在以一种统一的方式将开发人员分配给这些报告。文章提出了缺陷报告管理问题,涉及到将开发人员分配给报告并将报告向量化以进一步使用。
框架主要包括三个主要步骤:预处理、向量化和测试机器学习算法。在预处理步骤中,对缺陷报告进行文本分割、停用词移除和特征选择。在向量化步骤中,将文本描述转换为特征向量,使用向量空间模型和主题模型的不同比例来适应不同来源的缺陷报告。最后,在测试机器学习算法的步骤中,作者介绍了使用SVM和反向传播神经网络来解决问题的方法。
文章还详细讨论了实验结果,包括特征选择比例、向量空间模型与主题模型比例、不同算法的比较以及最佳性能的变量组合。通过实验,作者证明了框架的有效性,并展示了不同变量组合对缺陷报告分配结果的影响。
创新点与借鉴点
- 统一框架提出:文章的主要创新点是提出了一个统一的框架,用于处理来自不同渠道的缺陷报告。这个框架将传统的开源项目和新兴的众包测试、移动应用测试等渠道的缺陷报告进行统一处理,弥补了传统方法在处理轻量级报告时的不足。
- 多阶段处理:文章采用了多阶段的处理流程,包括数据预处理、向量化和分类。这种方法使得框架更加灵活和适用于不同类型的缺陷报告,同时提高了处理效率。
- 特征选择策略:在数据预处理阶段,作者使用了特征选择策略,包括去除停用词和采用信息增益(IG)和卡方统计(CHI)等方法。这有助于提高报告的质量和准确性。
- 实验验证:文章在不同数据集上进行了广泛的实验,评估了不同变量组合对缺陷报告分配的影响,从而验证了提出的框架的可行性和有效性。
实验方法
- 数据准备:作者使用了三个不同的数据集,包括Eclipse项目的Bugzilla缺陷报告、百度输入项目的众包测试任务和Mooctest移动应用程序测试的缺陷报告。这些数据集涵盖了不同渠道和不同特点的缺陷报告。
- 数据预处理:在数据预处理步骤中,作者对缺陷报告进行了准备工作。对于中文缺陷报告,他们使用了ICTCLAS工具进行分词处理。然后,他们去除了常见的停用词,并使用信息增益(IG)和卡方统计(CHI)等方法进行特征选择,以准备报告进行后续处理。
- 向量化:在向量化步骤中,作者将文本描述转化为特征向量,以便进行机器学习分类。他们采用了向量空间模型(TF-IDF)和主题模型(Latent Dirichlet Allocation)的组合,并实验了不同比例的模型组合,以适应不同来源的缺陷报告。
- 分类算法选择:在分类步骤中,作者比较了两种不同的分类算法,即支持向量机(SVM)和反向传播神经网络。SVM通过构建超平面来进行分类,而反向传播神经网络是一种监督学习方法,通过调整神经网络的连接权重来实现分类。
- 实验评估:作者通过实验评估了不同变量组合对缺陷报告分配结果的影响。他们比较了特征选择比例、向量化模型比例以及不同分类算法之间的性能差异,并报告了获得最佳性能的变量组合。
总结
- (1): 这篇文章的研究背景是缺陷报告在不同来源和格式下的多样性,以及如何有效地将开发人员分配给这些报告。
- (2): 过去的方法主要关注传统的开源项目,使用传统仓库管理缺陷报告,但这些方法不能适应新兴的众包测试和移动应用测试,因为这些渠道的报告通常是轻量级的。这篇文章提出了一个统一的框架,通过预处理、向量化和机器学习技术来处理来自不同渠道的缺陷报告,解决了传统方法的问题。
- (3): 该论文提出的研究方法包括三个主要步骤:数据预处理、向量化和分类。在数据预处理中,作者使用分词工具、去除停用词和特征选择来准备缺陷报告。在向量化中,他们将文本描述转化为特征向量,采用了向量空间模型和主题模型的组合。最后,在分类阶段,不同分类算法被应用于分配缺陷报告给开发人员。
- (4): 该方法在不同数据集上进行了实验,评估了不同变量组合对缺陷报告分配结果的影响。作者的方法能够有效地处理来自不同渠道的缺陷报告,并在实验中取得了良好的性能表现,支持了他们的研究目标。