Crashes are easy to hit.

Hard to reproduce.

App crashes
Opened by a user · issue tracker
It just closes when I open it.
FATAL EXCEPTION: main
  at …(Unknown Source)
  at …(Unknown Source)
STEPS TO REPRODUCE: ?

Reports arrive with a stack trace.

Reproduction steps are the hardest thing for reporters to provide.

And some crashes need the network off.

Wi-Fi, GPS, sensors, rotation: contexts make crashes harder to find and to report.

Introducing
CrashScope
Discover · Report · Reproduce
NETWORK OFF
01Target contexts
02Explore 12 ways
03Report & replay

Find the fragile screens.

Static analysis flags the screens that touch the network, GPS or sensors, and those that rotate.

01Schedule screenNETWORK
02Map screenGPS
03Event detailsROTATION

Explore twelve ways.

Two traversal orders × three text-input policies × adverse contexts on or off.

CONTEXTS OFF

CONTEXTS ON

A report you can act on.

Screenshots, natural-language steps, a pruned stack trace, and a script that replays the crash.

crash report · steps to reproduce
1NETWORK OFFLaunch the app.
2Tap on “Refresh” button, which is located on the top right of the screen.
replay script
<Network OFF>
adb shell input tap 330 92
Crash discovery study
0
open-source Android apps
0
state-of-the-art tools compared
0
exploration strategies
Report study · 16 participants · 8 real-world crashes
0%
of CrashScope reports reproduced
92%of the original, human-written reports reproduced
4.13 vs 3.44“really useful for reproducing the crash” (out of 5)
4.00 vs 3.00“easy to read and understand” (out of 5)
One crash · two reports · 31C3 Schedule app
ORIGINAL REPORT
No one

reproduced the crash.

CRASHSCOPE REPORT
Everyone

did. Its steps said: turn the network off.

Automatically Discovering, Reporting and Reproducing Android Application Crashes

Kevin Moran · Mario Linares-Vásquez · Carlos Bernal-Cárdenas · Christopher Vendome · Denys Poshyvanyk
ICST 2016 · IEEE International Conference on Software Testing, Verification and Validation