Abstract
Software projects are not void from bugs when they are released, so the developers keep receiving bug reports that describe technical issues. The process of identifying the buggy code files that correspond to the submitted bug reports is called bug localization. Automating the bug localization process can speed up bug fixing and improve the productivity of the developers, especially with a large number of submitted bug reports. Several automatic bug localization approaches were proposed in the literature reviews which are based on the textual and /or semantic similarity among the bug reports and the source code files. Nevertheless, none of the previous approaches made use of the source code complexity despite its importance; as high complexity source code files have higher probabilities to be modified than the low complexity files and are prone to bug occurrences. To improve the accuracy of the automatic bug localization task, this paper proposes a Hybrid Bug Localization approach (HBL) that makes full use of textual and semantic features of source code files, previously fixed bug reports, in addition to the source code complexity and version history properties. The effectiveness of the proposed approach was assessed using three open-source Java projects, ZXing, SWT, and AspectJ, of different sizes. Experimental results showed that the proposed approach outperforms several state-of-the-art approaches in terms of the mean average precision (MAP) and the mean reciprocal rank (MRR) metrics.
Highlights
Software projects are usually released while they still contain bugs; so they set up Bug Tracking Systems (BTS) to receive bug reports and manage bug fixes during the maintenance phase [1]
The results show on large-scale implementation of three open-source projects (e.g. SWT, ZXing, and Guava) improve 7 % in terms of Mean Reciprocal Rank (MRR) and up to 8 % for (MAP) compared with techniques of (BLUiR), (BugLocator), and (Amalgam) [2], [6], [8]
WORK The software maintenance phase is crucial for the software projects to fix issues and bugs, that might arise after the software release
Summary
Software projects are usually released while they still contain bugs; so they set up Bug Tracking Systems (BTS) to receive bug reports and manage bug fixes during the maintenance phase [1]. Bug localization is an essential task during the maintenance phase to locate the buggy files. It is a timeconsuming task to be done manually, as the developers should analyze the submitted bug reports and review a large number of source code files. Bug reports are not standardized; they are written using natural language. Sometimes the bug reports contain terms from the associated buggy files. Bug reports may contain stack traces [2]. The existence of stack traces in the report is critical as it helps the developer to narrow down the list of suspicious source code files [3]. Newly submitted bug reports may have textual
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.