Search papers, labs, and topics across Lattice.
This study introduces a multi-objective approach to bug localization that leverages an evolutionary optimization algorithm, SPEA-2, to enhance the identification of faulty classes from bug reports. By optimizing for both similarity and the number of suggested faulty files, the method significantly outperformed traditional single-objective and multi-objective algorithms in precision and recall across six large Java projects. Notably, the system successfully identified buggy classes for 88.5% of bug reports within the top 10 recommendations, showcasing its effectiveness and adaptability to different programming languages, including Kotlin.
Achieving 88.5% accuracy in identifying buggy classes from bug reports, this multi-objective approach could revolutionize the efficiency of software debugging.
Bug localization is a labor-intensive task, particularly in large software systems. When abnormal behavior occurs, developers must perform repetitive and time-consuming steps to identify faulty files. Previous studies have mainly focused on single-objective localization methods, many of which are limited to specific programming languages. In addition, relying solely on lexical similarity between source code and bug reports is often insufficient due to the natural language nature of bug descriptions. In this study, we propose a class-level automated multi-objective search-based system to identify and rank potentially buggy classes from bug reports. The main objective is to maximize similarity while minimizing the number of suggested faulty files. The evolutionary optimization algorithm SPEA-2 was applied to six open-source Java projects comprising more than 22,000 bug reports. The proposed approach was evaluated against two widely used algorithms, NSGA-II and MOEA/D. Results indicate that SPEA-2 achieved higher precision and recall than both multi-objective and single-objective baseline methods. The proposed recommender system successfully identified buggy classes or files for 88.5\% of bug reports within the top 10 recommendations and 94\% within the top 20. The effectiveness of the model was further validated on an industrial Android project written in Kotlin, demonstrating its adaptability across programming languages.