Every fix starts with a bug report.

So does everything else.

0M+
mobile developerscreating and maintaining apps
nearly ½
of users less likely to returnto an app that misbehaves

The report feeds every task.

Reproducing, fixing, de-duplicating and triaging all start from it.

Thin reports starve them all.

Limited information is the chief obstacle, even for automated triage and duplicate detection.

BUG REPORT

Title

“It crashes sometimes.”
1Reproduce
2Fix
3Detect duplicates
4Triage to a developer
A research program

Can program analysis close the gap between reporters and developers?

PRELIMINARY
FUSION
TASK 1
New reporting
TASK 2
Reports at work
TASK 3
Evaluate

Start from evidence: FUSION.

Static and dynamic analysis auto-complete the steps to reproduce. Developers reproduced more bugs from FUSION reports than from Google Code Issue Tracker reports.

Analyze → Generate15 real bugs14 open-source apps20 developers reproducing

A framework of reporting mechanisms.

Detailed, structured reports with low effort, however a bug is found.

OFF-DEVICE

Web reporting

Auto-completion driven by program analysis and an n-gram model of the app’s event flow.

ON-DEVICE

Capture & replay

Record the bug in the app, on the device, while preserving user privacy.

AUTOMATED

Crash reports

Exercise the GUI systematically, then report each crash in detail.

Put richer reports to work.

New techniques built on the structured information these reports carry.

TRIAGE

Right developer

Assign each report to who can resolve it most easily.

DUPLICATES

Fewer repeats

Eliminate the large numbers of duplicate reports.

EVOLUTION

Reports that age well

Evolve reports and their test cases as the app evolves.

Measure what changes.

User studies and empirical case studies on popular apps from F-Droid and Google Play.

Reporter experienceReadabilityReproducibilityDuplicate detectionDeveloper triage
The vision

“…the reports carry the potential to be automatically replayed and confirmed on several different hardware and device configurations…”

Fixing Bug Reporting for Mobile and GUI-Based Applications

Kevin Moran · Advisor: Denys Poshyvanyk
ICSE 2016 · Doctoral Symposium · IEEE/ACM International Conference on Software Engineering