MobileSoft ’17
Buenos Aires,Argentina
Monday, May 22nd, 2017
Kevin Moran,
Richard Bonett,
Carlos Bernal-Cárdenas,
Brendan Otten,
Daniel Park,
& Denys Poshyvanyk
ON-DEVICE BUG REPORTING FOR
ANDROID APPLICATIONS
BACKGROUND & MOTIVATION
• Effective bug reporting can be difficult for mobile apps.
• Insufficient information in bug reports is one of the leading
causes of non-reproducible reports.1
• Developers consider (i) steps to reproduce, (ii) stack traces,
and (iii) test cases/scenarios as the most helpful sources of
information in bug reports.2
1M. Erfani Joorabchi, M. Mirzaaghaei, and A. Mesbah. Works for me! characterizing non-reproducible bug reports. MSR 2014,
2Nicolas Bettenburg, Sascha Just, Adrian Schröter, Cathrin Weiss, Rahul Premraj, and Thomas Zimmermann. 2008. What makes a
good bug report? (SIGSOFT ’08/FSE-16)
RELATED WORK
• Two major types of SimilarTools:
RELATED WORK
• Two major types of SimilarTools:
• Commercially Available Bug Reporting Services

RELATED WORK
• Two major types of SimilarTools:
• Commercially Available Bug Reporting Services

RELATED WORK
• Two major types of SimilarTools:
• Commercially Available Bug Reporting Services

• Research/Commercial Tools for Record/Replay
RELATED WORK
• Two major types of SimilarTools:
• Commercially Available Bug Reporting Services

• Research/Commercial Tools for Record/Replay
RELATED WORK
• Bug Reporting Services do not collect precise user
input information.
• Existing Record & Replay tools typically require a
connection to a host machine.
• These limitations prohibit easy, accurate recording of
bug reports in contexts such as crowd-based
testing.
LIMITATIONS OF RELATED WORK
OUR SOLUTION: ODBR
ODBR Android App Running on
Physical or Virtual Android Device
ODBR Application Overview
GetEvent
Manager
SensorEvent
Manager
ScreenShot
Manager
Service that reads
from dev/input/
Samples Sensor
Streams
Screenshot
Service
Bug Recording Phase
Bug Report
JSON
Document
CouchDB
Java Web-
Application
Parse
JSON
Bug
Document
Display
rich html
Bug
Report
Bug Report Displayed in Web InterfaceUI-Hierarchy
Manager
Collects UI Info
from uiautomator
OUR SOLUTION: ODBR
ODBR Android App Running on
Physical or Virtual Android Device
ODBR Application Overview
GetEvent
Manager
SensorEvent
Manager
ScreenShot
Manager
Service that reads
from dev/input/
Samples Sensor
Streams
Screenshot
Service
Bug Recording Phase
Bug Report
JSON
Document
CouchDB
Java Web-
Application
Parse
JSON
Bug
Document
Display
rich html
Bug
Report
Bug Report Displayed in Web InterfaceUI-Hierarchy
Manager
Collects UI Info
from uiautomator
Android Application
OUR SOLUTION: ODBR
ODBR Android App Running on
Physical or Virtual Android Device
ODBR Application Overview
GetEvent
Manager
SensorEvent
Manager
ScreenShot
Manager
Service that reads
from dev/input/
Samples Sensor
Streams
Screenshot
Service
Bug Recording Phase
Bug Report
JSON
Document
CouchDB
Java Web-
Application
Parse
JSON
Bug
Document
Display
rich html
Bug
Report
Bug Report Displayed in Web InterfaceUI-Hierarchy
Manager
Collects UI Info
from uiautomator
Android Application Java Web Application
ODBR: DEMO
ODBR: DEMO
4) Replay is
Completely
Automated!
2) User records inputs to
reproduce bug
3) User reviews bug
report to ensure actions
are accurate
1) User opens ODBR
and chooses app to
record
ODBR:WEB INTERFACE
ODBR:WEB INTERFACE
Any Questions?
Thank you!
https://www.android-dev-tools.com/odbr/
ODBR is open source under the MIT License! please visit:
Kevin Moran
Ph.D. candidate
kpmoran@cs.wm.edu
http://www.cs.wm.edu/~kpmoran

On-Device Bug Reporting for Android Applications

  • 1.
    MobileSoft ’17 Buenos Aires,Argentina Monday,May 22nd, 2017 Kevin Moran, Richard Bonett, Carlos Bernal-Cárdenas, Brendan Otten, Daniel Park, & Denys Poshyvanyk ON-DEVICE BUG REPORTING FOR ANDROID APPLICATIONS
  • 2.
    BACKGROUND & MOTIVATION •Effective bug reporting can be difficult for mobile apps. • Insufficient information in bug reports is one of the leading causes of non-reproducible reports.1 • Developers consider (i) steps to reproduce, (ii) stack traces, and (iii) test cases/scenarios as the most helpful sources of information in bug reports.2 1M. Erfani Joorabchi, M. Mirzaaghaei, and A. Mesbah. Works for me! characterizing non-reproducible bug reports. MSR 2014, 2Nicolas Bettenburg, Sascha Just, Adrian Schröter, Cathrin Weiss, Rahul Premraj, and Thomas Zimmermann. 2008. What makes a good bug report? (SIGSOFT ’08/FSE-16)
  • 3.
  • 4.
    • Two majortypes of SimilarTools: RELATED WORK
  • 5.
    • Two majortypes of SimilarTools: • Commercially Available Bug Reporting Services
 RELATED WORK
  • 6.
    • Two majortypes of SimilarTools: • Commercially Available Bug Reporting Services
 RELATED WORK
  • 7.
    • Two majortypes of SimilarTools: • Commercially Available Bug Reporting Services
 • Research/Commercial Tools for Record/Replay RELATED WORK
  • 8.
    • Two majortypes of SimilarTools: • Commercially Available Bug Reporting Services
 • Research/Commercial Tools for Record/Replay RELATED WORK
  • 9.
    • Bug ReportingServices do not collect precise user input information. • Existing Record & Replay tools typically require a connection to a host machine. • These limitations prohibit easy, accurate recording of bug reports in contexts such as crowd-based testing. LIMITATIONS OF RELATED WORK
  • 10.
    OUR SOLUTION: ODBR ODBRAndroid App Running on Physical or Virtual Android Device ODBR Application Overview GetEvent Manager SensorEvent Manager ScreenShot Manager Service that reads from dev/input/ Samples Sensor Streams Screenshot Service Bug Recording Phase Bug Report JSON Document CouchDB Java Web- Application Parse JSON Bug Document Display rich html Bug Report Bug Report Displayed in Web InterfaceUI-Hierarchy Manager Collects UI Info from uiautomator
  • 11.
    OUR SOLUTION: ODBR ODBRAndroid App Running on Physical or Virtual Android Device ODBR Application Overview GetEvent Manager SensorEvent Manager ScreenShot Manager Service that reads from dev/input/ Samples Sensor Streams Screenshot Service Bug Recording Phase Bug Report JSON Document CouchDB Java Web- Application Parse JSON Bug Document Display rich html Bug Report Bug Report Displayed in Web InterfaceUI-Hierarchy Manager Collects UI Info from uiautomator Android Application
  • 12.
    OUR SOLUTION: ODBR ODBRAndroid App Running on Physical or Virtual Android Device ODBR Application Overview GetEvent Manager SensorEvent Manager ScreenShot Manager Service that reads from dev/input/ Samples Sensor Streams Screenshot Service Bug Recording Phase Bug Report JSON Document CouchDB Java Web- Application Parse JSON Bug Document Display rich html Bug Report Bug Report Displayed in Web InterfaceUI-Hierarchy Manager Collects UI Info from uiautomator Android Application Java Web Application
  • 13.
  • 14.
    ODBR: DEMO 4) Replayis Completely Automated! 2) User records inputs to reproduce bug 3) User reviews bug report to ensure actions are accurate 1) User opens ODBR and chooses app to record
  • 15.
  • 16.
  • 17.
    Any Questions? Thank you! https://www.android-dev-tools.com/odbr/ ODBRis open source under the MIT License! please visit: Kevin Moran Ph.D. candidate kpmoran@cs.wm.edu http://www.cs.wm.edu/~kpmoran