DRAST – A Deep Learning and AST Based Approach for Bug Localization
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
... oach 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.