论文标题

Drast-一种深度学习和基于AST的方法的方法

DRAST -- A Deep Learning and AST Based Approach for Bug Localization

论文作者

Sangle, Shubham, Muvva, Sandeep, Chimalakonda, Sridhar, Ponnalagu, Karthikeyan, Venkoparao, Vijendran Gopalan

论文摘要

上下文:给定项目的错误报告和源代码,错误本地化可以帮助开发人员专注于修复可能的错误文件,而不是搜索整个源代码存储库。尽管现有研究使用信息检索(IR)和/或机器学习(ML)或深度学习方法(DL)方法的组合,但它们主要关注基准Java项目,并激发了对多语言错误本地化方法的需求。目的:创建一种新颖的错误本地化方法,该方法利用源代码的句法结构,错误报告信息以及可以支持多语言项目以及C项目的新数据集。方法:所提出的DRAST方法通过使用其高级AST代表源代码作为代码向量,并结合了RVSM,RVSM是一种IR技术,具有ML/DL模型,例如随机森林和深神经网络回归剂,以排名错误的文件列表。我们还使用IR技术,使用DNNS的词汇不匹配以及使用BUGC数据集的元数据诸如文本相似性,词汇不匹配。结果:我们对BUGC数据集的七个项目进行了DRAST,该项目由21个开源C项目中的2462个错误报告组成。结果表明,DRAST可以从前1、5和10个建议的文件中找到正确的错误文件,而随机选择的七个项目的MAP和MRR分数高于90%。我们还测试了Tomcat和extackJ的DRAST,这是基准数据集的项目,与最新的ART相比,COCER@1,MAP和MRR的结果更好。结论:本文提出了一种新颖的错误本地化方法,该方法在C和Java项目以及一个错误本地化C数据集以及新颖的源代码表示方面起作用。使用DRAST的C项目的结果很有希望,可以激励研究人员/从业者专注于开发和创建多语言错误本地化方法。

Context: Given a bug report and source code of the project, bug localization can help developers to focus on fixing probable buggy files rather than searching the entire source code repository. While existing research uses information retrieval (IR) and/or combination of machine learning (ML) or deep learning (DL) approaches, they focus primarily on benchmark Java projects, and also motivate the need for multi-language bug localization approach. Objective: To create a novel bug localization approach that leverages the syntactic structure of source code, bug report information and which can support multi-language projects along with a new dataset of C projects. Method: The proposed DRAST approach represents source code as code vectors by using its high-level AST and combines rVSM, an IR technique with ML/DL models such as Random Forest and Deep Neural Network regressor to rank the list of buggy files. We also use features such as textual similarity using IR techniques, lexical mismatch using DNNs, and history of the project using the metadata of BugC dataset. Results: We tested DRAST on seven projects from the BugC dataset, which consists of 2462 bug reports from 21 open-source C projects. The results show that DRAST can locate correct buggy files 90% of the time from top 1, 5, and 10 suggested files with MAP and MRR scores of above 90% for the randomly selected seven projects. We also tested DRAST on Tomcat and AspectJ, projects from benchmark dataset with better results at accuracy@1, MAP and MRR when compared with state-of-the-art. Conclusions: This paper presents a novel bug localization approach that works on C and Java projects and a bug localization C dataset along with a novel source code representation. The results for C projects using DRAST are promising and could motivate researchers/practitioners to focus on developing and creating multi-language bug localization approaches.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源