Reporters think in screens.

Developers, in code.

Between them: a lexical gap.

Missing information is a leading reason bug reports can’t be reproduced.

FUSION bridges it.

Every step a reporter enters is linked to the app’s own GUI and code.

WHAT THE REPORTER SAW
WHAT THE DEVELOPER NEEDS
LEXICAL GAP
“the menu thing”
“the page box”
“hit OK”
Button · id/ok
ViewerActivity.java
EditText · id/page
FUSION

Analyze → Generate.

Program analysis runs once per build. Reporters get guided, step by step.

01 · ANALYSIS PHASE

Learn the app

PrimerStatic: every GUI component, its type, Activity and class
EngineDynamic: DFS ripping for text, location and screenshots
→
02 · REPORT GENERATION

Guide the reporter

TrackA decision tree follows where the reporter is in the app
ConfirmEach step is checked against a full screenshot
{click,Button “OK”}
Bug reports developers could not reproduce
0/120
with FUSION
0/120
with Google Code Issue Tracker

Two studies · 15 real bugs · 14 open-source Android apps

The conclusion

“Mobile issue trackers can be augmented to facilitate users creating more detailed and reproducible bug reports.”

Second Place Graduate Student · ACM Student Research Competition

Enhancing Android Application Bug Reporting

Kevin Moran
ESEC/FSE 2015 · Student Research Competition
European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering