Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
119 tokens/sec
GPT-4o
56 tokens/sec
Gemini 2.5 Pro Pro
43 tokens/sec
o3 Pro
6 tokens/sec
GPT-4.1 Pro
47 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Automatically Discovering, Reporting and Reproducing Android Application Crashes (1706.01130v1)

Published 4 Jun 2017 in cs.SE

Abstract: 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.

User Edit Pencil Streamline Icon: https://streamlinehq.com
Authors (5)
  1. Kevin Moran (66 papers)
  2. Mario Linares-Vásquez (17 papers)
  3. Carlos Bernal-Cárdenas (20 papers)
  4. Christopher Vendome (5 papers)
  5. Denys Poshyvanyk (80 papers)
Citations (165)

Summary

Overview of Automatically Discovering, Reporting, and Reproducing Android Application Crashes

The paper presents an innovative approach to handling the critical aspect of mobile application development concerning the discovery, reporting, and reproduction of application crashes. The proposed system, named ``CrashScope," is tailored for Android apps and leverages automated methodologies to address prevailing challenges faced by developers due to the event-driven nature of mobile GUIs and diverse input sources such as sensors. This work reflects the increasing need for robust maintenance frameworks in an ever-expanding mobile app ecosystem.

Methodology

CrashScope is built around a systematic input generation algorithm that integrates both static and dynamic analyses aimed at triggering application faults. When a crash is detected, the system formulates comprehensive crash reports enriched with features to facilitate accurate reproduction. The reports include screenshots, detailed steps for reproducing the crash, exception stack traces, and executable scripts capable of replaying the crash on specific devices. Importantly, CrashScope operates without instrumenting the application or the operating system, requiring only the app's APK file and suitable execution environments.

Evaluation

The effectiveness of CrashScope was evaluated alongside five state-of-the-art tools through testing on 61 Android applications. Various metrics were considered, including crash detection efficiency and the depth of information captured within reports. Results indicate that while CrashScope's crash discovery rate is comparable to existing tools, its capability for providing more detailed fault information is noteworthy. Moreover, a user paper focusing on eight real-world app crashes highlighted the utility of the generated crash reports, which proved superior in readability and reproduction accuracy compared to human-authored reports.

Core Contributions

  1. Automated Crash Report Generation: To the best of existing knowledge, CrashScope is the first system to automatically produce expressive and detailed crash reports for mobile apps. This involves no manual intervention beyond interpreting the generated reports, showcasing a practical advancement within automated testing paradigms.
  2. Evaluation Against Existing Tools: Comprehensive evaluations against other methods, including Dynodroid, Gui-Ripper, PUMA, A3^3E, and Monkey, underscore CrashScope's efficacy in crash detection. Despite achieving similar detection rates, the ease of use and detailed output position CrashScope as a favorable choice for developers.
  3. User Study on Report Effectiveness: The comparative paper on crash report readability and reproducibility indicates that generated reports outperform those written by developers. This result suggests a potential reduction in developer effort when addressing application faults.
  4. Public Availability of the Dataset: To aid further research, the experimental dataset and crash report samples are made available in an online appendix, promoting transparency and reproducibility in subsequent investigations.

Implications and Future Work

CrashScope promises substantial practical benefits by reducing the developer workload associated with bug fixing and enhancing the reliability of applications through systematic fault detection. In terms of theoretical implications, it advances current discourse on the utility of automated systems in mobile testing applications. Future directions might involve optimizing report generation to include only vital reproduction steps, integrating advanced GUI testing methodologies, and exploring symbolic execution techniques to handle highly specialized inputs robustly.

In conclusion, CrashScope represents a sophisticated tool in the domain of mobile application testing, bridging gaps in developer needs for reliable crash reports and extending capabilities of existing automatic testing frameworks.