论文部分内容阅读
大型开源软件项目,诸如:Eclipse和Mozilla这样的开源软件,都配备相应的缺陷追踪系统,因为这样的软件项目系统规模庞大,需求量高,不断有新的功能扩充。缺陷追踪系统每天会产生大量缺陷报告。如果采用人工的方法将缺陷报告进行分派,将会耗费大量时间和人力。因此,研究缺陷报告的自动分派方法对于提高缺陷的修复效率具有重要的意义。相关研究人员利用缺陷追踪系统中缺陷报告的信息提出了不同自动分派技术和方法,但是这些方法并没有考虑到修复者本身的兴趣、活跃情况、能力水平等问题,而且没有提取缺陷报告文本的深层语义信息。针对上述问题,本文研究了基于文本分类的缺陷报告分派方法和基于相似度计算的缺陷报告分派方法。本文提出了一种基于聚类与循环神经网络的缺陷报告分派方法。首先,利用无监督聚类算法对相似缺陷报告进行聚类,按修复者的兴趣将相似的缺陷报告聚集到一起,从而挖掘出不同修复者所适合修复的不同类型的缺陷报告。在聚类特征向量提取上,本文首先对缺陷报告的分类信息提取One-hot向量,对于文本信息利用TF-IDF算法提取词语权重向量,利用主题模型和Word2Vec模型提取了主题向量和语义向量,然后将这4种特征向量进行融合,并采用k-means++算法进行聚类,从而生成多个缺陷报告簇。其次,将每个包含修复者信息的缺陷报告簇按照时间顺序排序后,得到一个历史修复者序列。通过对缺陷追踪系统的信息进行分析,统计并计算修复者特征集合,然后将其映射到所对应的修复者序列中。然后,本文采用了深度学习技术的循环神经网络来训练这种序列型数据,本文采用了一种cluster-based的训练方法,该方法更加适合聚类后的数据。最后,对于每个新的待修复的缺陷报告,首先通过聚类模型将其划分为所属的缺陷报告类别,然后根据该类别的历史修复信息利用已训练好的循环神经网络模型将其推荐给合适的修复者。最终在三种常用数据集上实验,结果表明:本文的方法相比于其他方法提高了修复者推荐的Top-k准确率。