Automatically Discovering, Reporting and Reproducing Android Application Crashes
This addresses the challenge for mobile developers in efficiently identifying and reproducing app crashes, though it is incremental as it builds on existing input generation methods.
The authors tackled the problem of detecting and reporting crashes in Android apps by introducing CRASHSCOPE, an automated tool that explores apps to trigger crashes and generates detailed reports; results show it performs comparably to state-of-the-art tools on 61 apps and provides more explicit information than human reports in a study of eight real-world crashes.
Mobile developers face unique challenges when detecting and reporting crashes in apps due to their prevailing GUI event-driven nature and additional sources of inputs (e.g., sensor readings). To support developers in these tasks, we introduce a novel, automated approach called CRASHSCOPE. This tool explores a given Android app using systematic input generation, according to several strategies informed by static and dynamic analyses, with the intrinsic goal of triggering crashes. When a crash is detected, CRASHSCOPE generates an augmented crash report containing screenshots, detailed crash reproduction steps, the captured exception stack trace, and a fully replayable script that automatically reproduces the crash on a target device(s). We evaluated CRASHSCOPE's effectiveness in discovering crashes as compared to five state-of-the-art Android input generation tools on 61 applications. The results demonstrate that CRASHSCOPE performs about as well as current tools for detecting crashes and provides more detailed fault information. Additionally, in a study analyzing eight real-world Android app crashes, we found that CRASHSCOPE's reports are easily readable and allow for reliable reproduction of crashes by presenting more explicit information than human written reports.