DapStep:堆栈跟踪错误的深度受让人预测rePresentation
DapStep: Deep Assignee Prediction for Stack Trace Error rePresentation
摘要:
找到最好的开发人员来修复bug的任务称为bug分类。大多数现有的方法认为错误分类任务作为一个分类问题,然而,分类是不合适的,当类的集合随着时间的推移而变化(如开发人员经常在一个项目中)。此外,据我们所知,所有现有的模型都使用文本信息源,即,bug描述,并不总是可用的。在这项工作中,我们探讨了现有的解决方案的错误分类问题时,堆栈跟踪作为主要数据源的错误报告的适用性。此外,我们将这一任务重新定义为排名问题,并提出了新的深度学习模型来解决它。这些模型基于带注意力的双向递归神经网络和卷积神经网络,并使用排名损失函数优化模型的权重。为了提高排名的质量,我们建议使用来自版本控制系统注释的附加信息。提出了两种方法从注释中提取特征:手动和使用额外的神经网络。为了评估我们的模型,我们收集了两个真实世界堆栈轨迹的数据集。我们的实验表明,所提出的模型优于现有的模型适应处理堆栈跟踪。为了促进这一领域的进一步研究,我们发布了我们模型的源代码和收集的数据集之一。
英文摘要:
The task of finding the best developer to fix a bug is called bug triage. Most of the existing approaches consider the bug triage task as a classification problem, however, classification is not appropriate when the sets of classes change over time (as developers often do in a project). Furthermore, to the best of our knowledge, all the existing models use textual sources of information, i.e., bug descriptions, which are not always available. In this work, we explore the applicability of existing solutions for the bug triage problem when stack traces are used as the main data source of bug reports. Additionally, we reformulate this task as a ranking problem and propose new deep learning models to solve it. The models are based on a bidirectional recurrent neural network with attention and on a convolutional neural network, with the weights of the models optimized using a ranking loss function. To improve the quality of ranking, we propose using additional information from version control system annotations. Two approaches are proposed for extracting features from annotations: manual and using an additional neural network. To evaluate our models, we collected two datasets of real-world stack traces. Our experiments show that the proposed models outperform existing models adapted to handle stack traces. To facilitate further research in this area, we publish the source code of our models and one of the collected datasets.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。