Abstract Context The challenge of locating bugs in mostly large-scale software systems has led to the development of bug localization techniques. However, the lexical mismatch between bug reports and source codes degrades the performances of existing information retrieval or machine learning-based approaches. Objective To bridge the lexical gap and improve the effectiveness of localizing buggy files by leveraging the extracted semantic information from bug reports and source code. Method We present BugTranslator, a novel deep learning-based machine translation technique composed of an attention-based recurrent neural network (RNN) Encoder-Decoder with long short-term memory cells. One RNN encodes bug reports into several context vectors that are decoded by another RNN into code tokens of buggy files. The technique studies and adopts the relevance between the extracted semantic information from bug reports and source files. Results The experimental results show that BugTranslator outperforms a current state-of-the-art word embedding technique on three open-source projects with higher MAP and MRR. The results show that BugTranslator can rank actual buggy files at the second or third places on average. Conclusion BugTranslator distinguishes bug reports and source code into different symbolic classes and then extracts deep semantic similarity and relevance between bug reports and the corresponding buggy files to bridge the lexical gap at its source, thereby further improving the performance of bug localization.
[1]
Andreas Zeller,et al.
Where Should We Fix This Bug? A Two-Phase Recommendation Model
,
2013,
IEEE Transactions on Software Engineering.
[2]
Razvan C. Bunescu,et al.
Learning to rank relevant files for bug reports using domain knowledge
,
2014,
SIGSOFT FSE.
[3]
Alexander J. Smola,et al.
Efficient mini-batch training for stochastic optimization
,
2014,
KDD.
[4]
Jian Zhou,et al.
Where should the bugs be fixed? More accurate information retrieval-based bug localization based on bug reports
,
2012,
2012 34th International Conference on Software Engineering (ICSE).
[5]
Quoc V. Le,et al.
Sequence to Sequence Learning with Neural Networks
,
2014,
NIPS.
[6]
Xiaodong Gu,et al.
Deep API learning
,
2016,
SIGSOFT FSE.
[7]
Xiao Ma,et al.
From Word Embeddings to Document Similarities for Improved Information Retrieval in Software Engineering
,
2016,
2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).
[8]
Anh Tuan Nguyen,et al.
Bug Localization with Combination of Deep Learning and Information Retrieval
,
2017,
2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC).