During the evolution of a software system, a large number of bug reports are submitted. Locating the source code files that need to be fixed to resolve the bugs is a challenging problem. Thus, there is a need for a technique that can automatically figure out these buggy files. A number of bug localization solutions that take in a bug report and output a ranked list of files sorted based on their likelihood to be buggy have been proposed in the literature. However, the accuracy of these tools still needs to be improved. In this paper, to address this need, we propose AmaLgam+, which is a method for locating relevant buggy files that puts together fives sources of information, namely, version history, similar reports, structure, stack traces, and reporter information. We perform a large-scale experiment on four open source projects, namely, AspectJ, Eclipse, SWT, and ZXing to localize more than 3000 bugs. We compare AmaLgam + with several state-of-the-art approaches including AmaLgam, BLUiR+, BRtracer+, BugLocator, and TFIDF-DHbPd. These approaches leverage one or several of the sources of information analyzed by AmaLgam+, but not all of them. On average, AmaLgam + achieves a 6.0% improvement over AmaLgam, which merges three sources of information, in terms of Mean Average Precision (MAP). For AspectJ and Eclipse datasets, in which there are many bug reports with stack traces and many reporters submit multiple bug reports, AmaLgam + achieves a 12.0% improvement over AmaLgam in terms of MAP. Compared with the other state-of-the-art approaches, AmaLgam + achieves an improvement of 20.3%, 22.5%, 33.1%, and 73.9% over BLUiR+, BRtracer+, BugLocator, and TFIDF-DHbPd in terms of MAP, respectively.
bug localization, reporter information, similar report, stack traces, structure, version history
Computer Sciences | Software Engineering
Software and Cyber-Physical Systems
Journal of Software: Evolution and Process
Wiley: 12 months
WANG, Shaowei and David LO.
AmaLgam+: Composing rich information sources for accurate bug localization. (2016). Journal of Software: Evolution and Process. 28, (10), 921-942. Research Collection School Of Information Systems.
Available at: http://ink.library.smu.edu.sg/sis_research/3576
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 4.0 License.