Bugs that surface in mobile applications can be difficult to reproduce and fix due to several confounding factors including the highly GUI-driven nature of mobile apps, varying contextual states, differing platform versions and device fragmentation. It is clear that developers need support in the form of automated tools that allow for more precise reporting of application defects in order to facilitate more efficient and effective bug fixes. In this paper, we present a tool aimed at supporting application testers and developers in the process of On-Device Bug Reporting. Our tool, called ODBR, leverages the uiautomator framework and low-level event stream capture to offer support for recording and replaying a series of input gesture and sensor events that describe a bug in an Android application.
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)
4. • Two major types of SimilarTools:
RELATED WORK
5. • Two major types of SimilarTools:
• Commercially Available Bug Reporting Services
RELATED WORK
6. • Two major types of SimilarTools:
• Commercially Available Bug Reporting Services
RELATED WORK
7. • Two major types of SimilarTools:
• Commercially Available Bug Reporting Services
• Research/Commercial Tools for Record/Replay
RELATED WORK
8. • Two major types of SimilarTools:
• Commercially Available Bug Reporting Services
• Research/Commercial Tools for Record/Replay
RELATED WORK
9. • 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
10. 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
11. 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
12. 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
14. 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