Conference Paper

Improving Bug Localization with an Enhanced Convolutional Neural Network.

Yan Xiao, Jacky W. Keung, Qing Mi, Kwabena Ebo Bennin

Abstract

Background: Localizing buggy files automatically speeds up the process of bug fixing so as to improve the efficiency and productivity of software quality teams. There are other useful semantic information available in bug reports and source code, but are mostly underutilized by existing bug localization approaches. Aims: We propose DeepLocator, a novel deep learning based model to improve the performance of bug localization by making full use of semantic information. Method: DeepLocator is composed of an enhanced CNN (Convolutional Neural Network) proposed in this study considering bug-fixing experience, together with a new rTF-IDuF method and pretrained word2vec technique. DeepLocator is then evaluated on over 18,500 bug reports extracted from AspectJ, Eclipse, JDT, SWT and Tomcat projects. Results: The experimental results show that DeepLocator achieves 9.77% to 26.65% higher Fmeasure than the conventional CNN and 3.8% higher MAP than a state-of-the-art method HyLoc using less computation time. Conclusion: DeepLocator is capable of automatically connecting bug reports to the corresponding buggy files and successfully achieves better performance based on a deep understanding of semantics in bug reports and source code. Index Terms-bug localization, convolutional neural network, word2vec, TF-IDF, deep learning, semantic information I. I NTRODUCTION Bug localization is a significant task during software maintenance process. To locate a newly reported bug, assigned developers need to carefully analyze the bug report and review a lot of source codes. The bug resolution activity requires a considerable large amount of time and effort. To reduce maintenance costs and substantially improve the efficiency and productivity of the whole software team, several automated bug localization approaches and tools have been proposed by researchers to localize the potential buggy files for developers. These approaches extract essential information from bug reports and source code. The existing bug localization techniques can be categorized into four main groups. The first group comprises approaches which use traditional features related with program analysis information [1], such as the

Keywords