Reporters describe what they saw.

Developers need steps.

What steps will reproduce the problem?
1. Open a document 2. Go to a page 3. It doesn’t work

Bug reports
are prose.

The quality of the steps depends on whoever writes them.

≈0%

of Android bug reports in a prior study
included steps to reproduce at all.

Introducing
FUSION
Analyze → Generate
9:41
Document Viewer

Go to page

12
CANCEL
OK
01Analyze the app
02Auto-complete steps
03Augment the report

Map the app first.

Before testing begins, FUSION extracts every GUI component and rips every screen it can reach.

Primer

Static analysis of the APK: components, types, Activities, classes.

dex2jarjd-cmdsrcMLapktool

Engine

Systematic DFS on a device: text, location and screenshots for each component.

UIAutomatorDFSscreenshots
APP MODEL

Steps, auto-completed.

Each step is an {action, component} pair, suggested from where the reporter is in the app.

ACTION
click▾
COMPONENT
Choose a component…▾
OKButton · “OK”CENTER
CANCELButton · “Cancel”CENTER LEFT
12EditText · “12”CENTER
Not in this list…

Augment every step.

Developers get each action, the component’s image and location, and the Activity behind it.

FUSION REPORT · DOCUMENT VIEWER · STEPS
1⋮click · Menu · top rightViewerActivity
2GO TOclick · TextView “Go to page” · topViewerActivity
312type “12” · EditText · centerViewerActivity
4OKclick · Button “OK” · centerViewerActivity
A two-part user study
0
participants
0
real bugs
0
open-source Android apps

Reports developers could not reproduce

FUSION
0of 120
Google CodeIssue Tracker
0of 120
8 vs 15unreproducible, when inexperienced reporters wrote them
11 of 60FUSION reports with every step auto-suggested
Study participant, reproducing bugs from FUSION reports

“The images of icons help a lot, especially when you have a hard time locating the icons on your screen.”

Auto-Completing Bug Reports for Android Applications

Kevin Moran · Mario Linares-Vásquez · Carlos Bernal-Cárdenas · Denys Poshyvanyk
ESEC/FSE 2015 · Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering