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

Read more

Summary

Introduction

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

Objectives
Results
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call