EBug is a bug reporting system. At the core of EBug is a real-time engine for understanding steps to reproduce (S2Rs) written in natural language and a novel predictive model capable of suggesting likely S2Rs, trained on real application usages. Supporting this core functionality are automated static and dynamic analyses capable of extracting a detailed GUI model from a given mobile app, including screenshots and GUI-related metadata. The primary means of interaction with EBug is via a "smart" unstructured text field, wherein reporters are tasked with writing S2Rs in natural language. When a user begins writing, EBug automatically recognizes different components of a given S2R (e.g., action, target GUI-component) and attempts to "auto-complete" missing information in a manner akin to the Google's smart compose feature in Gmail. EBug's natural language understanding and predictive model are capable of recognizing and suggesting both entire S2Rs as well as individual components thereof. We developed EBug's predictive modeling using a novel application of n-gram language modeling to sequences of actions from natural app usages collected by end-users.
We evaluated EBug in two user studies that involved bug reporting and bug reproduction tasks. The studies were based on 20 failures from 11 real-world apps. The studies included ten participants submitting ten bug reports each and ten developers reproducing the submitted bug reports. Comparing bug creation and bug reproduction against the state-of-the-art Fusion approach, we found that participants were able to create high quality reports quicker as compared to Fusion, and that the resultant reports were more reproducible.
The implementation of the EBug system is available at this link.
The experimental data associated with the empirical evaluation of EBug is available at this link.