Automated Bug Localization

Leveraging GUI interaction data to localize buggy code in Android apps.

One of the most important tasks related to managing bug reports is localizing the fault so that a fix can be applied. As such, prior work has aimed to automate this task of bug localization by formulating it as an information retrieval problem, where potentially buggy files are retrieved and ranked according to their textual similarity with a given bug report. However, there is often a notable semantic gap between the information contained in bug reports and identifiers or natural language contained within source code files. For user-facing software, there is currently a key source of information that could aid in bug localization, but has not been thoroughly investigated - information from the GUI. We investigate the hypothesis that, for end user-facing applications, connecting information in a bug report with information from the GUI, and using this to aid in retrieving potentially buggy files, can improve upon existing techniques for bug localization. To examine this phenomenon, we conduct a comprehensive empirical study that augments four baseline techniques for bug localization with GUI interaction information from a reproduction scenario to (i) filter out potentially irrelevant files, (ii) boost potentially relevant files, and (iii) reformulate text-retrieval queries. To carry out our study, we source the current largest dataset of fully-localized and reproducible real bugs for Android apps, with corresponding bug reports, consisting of 80 bug reports from 39 popular open-source apps. Our results illustrate that augmenting traditional techniques with GUI information leads to a marked increase in effectiveness across multiple metrics, including a relative increase in Hits@10 of 13-18%. Additionally, through further analysis, we find that our studied augmentations largely complement existing techniques. The dataset from this study is publicly available.

Building on this study, we developed LadyBug, a GitHub bot built with the Probot framework and a Flask back-end that automatically localizes bugs in Android apps by combining the text of a bug report with UI interaction information from a reproduction trace.

References

  1. icmse2025_logo.png
    LadyBug: A GitHub Bot for UI-Enhanced Bug Localization in Mobile Apps
    Junayed Mahmud, James Chen, Terry Achille, Camilo Alvarez-Velez, and 7 more authors
    In Proceedings of the IEEE 41st International Conference on Software Maintenance and Evolution (ICSME’25), Tool Demonstration Track, Auckland, New Zealand, Sep 2025
  2. icse2024_logo.png
    On Using GUI Interaction Data to Improve Text Retrieval-based Bug Localization
    Junayed Mahmud, Nadeeshan De Silva, Safwat Ali Khan, Seyed Hooman Mostafavi, and 4 more authors
    In Proceedings of the 46th IEEE/ACM International Conference on Software Engineering (ICSE’24), Lisbon, Portugal, Apr 2024