  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.
