5,239 research outputs found
Auto-completing Bug Reports for Android Applications
The modern software development landscape has seen a shift in focus toward
mobile applications as tablets and smartphones near ubiquitous adoption. Due to
this trend, the complexity of these apps has been increasing, making
development and maintenance challenging. Additionally, current bug tracking
systems are not able to effectively support construction of reports with
actionable information that directly lead to a bug's resolution. To address the
need for an improved reporting system, we introduce a novel solution, called
FUSION, that helps users auto complete reproduction steps in bug reports for
mobile apps. FUSION links user provided information to program artifacts
extracted through static and dynamic analysis performed before testing or
release. The approach that FUSION employs is generalizable to other current
mobile software platforms, and constitutes a new method by which off device bug
reporting can be conducted for mobile software projects. In a study involving
28 participants we applied FUSION to support the maintenance tasks of reporting
and reproducing defects from 15 real world bugs found in 14 open source Android
apps while qualitatively and qualitatively measuring the user experience of the
system. Our results demonstrate that FUSION both effectively facilitates
reporting and allows for more reliable reproduction of bugs from reports
compared to traditional issue tracking systems by presenting more detailed
contextual app information.Comment: ESEC/FSE 2015 10th Joint Meeting on Foundations of Software
Engineering, 14 page
On-Device Bug Reporting for Android Applications
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.Comment: 2 pages, Accepted in the Proceedings of 4th IEEE/ACM International
Conference on Mobile Software Engineering and Systems (MOBILESoft'17
Automatically Discovering, Reporting and Reproducing Android Application Crashes
Mobile developers face unique challenges when detecting and reporting crashes
in apps due to their prevailing GUI event-driven nature and additional sources
of inputs (e.g., sensor readings). To support developers in these tasks, we
introduce a novel, automated approach called CRASHSCOPE. This tool explores a
given Android app using systematic input generation, according to several
strategies informed by static and dynamic analyses, with the intrinsic goal of
triggering crashes. When a crash is detected, CRASHSCOPE generates an augmented
crash report containing screenshots, detailed crash reproduction steps, the
captured exception stack trace, and a fully replayable script that
automatically reproduces the crash on a target device(s). We evaluated
CRASHSCOPE's effectiveness in discovering crashes as compared to five
state-of-the-art Android input generation tools on 61 applications. The results
demonstrate that CRASHSCOPE performs about as well as current tools for
detecting crashes and provides more detailed fault information. Additionally,
in a study analyzing eight real-world Android app crashes, we found that
CRASHSCOPE's reports are easily readable and allow for reliable reproduction of
crashes by presenting more explicit information than human written reports.Comment: 12 pages, in Proceedings of 9th IEEE International Conference on
Software Testing, Verification and Validation (ICST'16), Chicago, IL, April
10-15, 2016, pp. 33-4
Translating Video Recordings of Mobile App Usages into Replayable Scenarios
Screen recordings of mobile applications are easy to obtain and capture a
wealth of information pertinent to software developers (e.g., bugs or feature
requests), making them a popular mechanism for crowdsourced app feedback. Thus,
these videos are becoming a common artifact that developers must manage. In
light of unique mobile development constraints, including swift release cycles
and rapidly evolving platforms, automated techniques for analyzing all types of
rich software artifacts provide benefit to mobile developers. Unfortunately,
automatically analyzing screen recordings presents serious challenges, due to
their graphical nature, compared to other types of (textual) artifacts. To
address these challenges, this paper introduces V2S, a lightweight, automated
approach for translating video recordings of Android app usages into replayable
scenarios. V2S is based primarily on computer vision techniques and adapts
recent solutions for object detection and image classification to detect and
classify user actions captured in a video, and convert these into a replayable
test scenario. We performed an extensive evaluation of V2S involving 175 videos
depicting 3,534 GUI-based actions collected from users exercising features and
reproducing bugs from over 80 popular Android apps. Our results illustrate that
V2S can accurately replay scenarios from screen recordings, and is capable of
reproducing 89% of our collected videos with minimal overhead. A case
study with three industrial partners illustrates the potential usefulness of
V2S from the viewpoint of developers.Comment: In proceedings of the 42nd International Conference on Software
Engineering (ICSE'20), 13 page
Fixing Bug Reporting for Mobile and GUI-Based Applications
Smartphones and tablets have established themselves as mainstays in the
modern computing landscape. It is conceivable that in the near future such
devices may supplant laptops and desktops, becoming many users primary means of
carrying out typical computer assisted tasks. In turn, this means that mobile
applications will continue on a trajectory to becoming more complex, and the
primary focus of millions of developers worldwide. In order to properly create
and maintain these apps developers will need support, especially with regard to
the prompt confirmation and resolution of bug reports. Unfortunately, current
issue tracking systems typically only implement collection of coarse grained
natural language descriptions, and lack features to facilitate reporters
including important information in their reports. This illustrates the lexical
information gap that exists in current bug reporting systems for mobile and
GUI-based apps. This paper outlines promising preliminary work towards
addressing this problem and proposes a comprehensive research program which
aims to implement new bug reporting mechanisms and examine the impact that they
might have on related software maintenance tasks.Comment: 4 pages, accepted to the Doctoral Symposium at the 38th ACM/IEEE
International Conference on Software Engineering (ICSE'16
Fixing Bug Reporting for Mobile and GUI-Based Applications
Smartphones and tablets have established themselves as mainstays in the modern computing landscape. It is conceivable that in the near future such devices may supplant laptops and desktops, becoming many users primary means of carrying out typical computer assisted tasks. In turn, this means that mobile applications will continue on a trajectory to becoming more complex, and the primary focus of millions of developers worldwide. In order to properly create and maintain these apps developers will need support, especially with regard to the prompt confirmation and resolution of bug reports. Unfortunately, current issue tracking systems typically only implement collection of coarse grained natural language descriptions, and lack features to facilitate reporters including important information in their reports. This illustrates the lexical information gap that exists in current bug reporting systems for mobile and GUI-based apps. This paper outlines promising preliminary work towards addressing this problem and proposes a comprehensive research program which aims to implement new bug reporting mechanisms and examine the impact that they might have on related software maintenance tasks
Trustworthy Experimentation Under Telemetry Loss
Failure to accurately measure the outcomes of an experiment can lead to bias
and incorrect conclusions. Online controlled experiments (aka AB tests) are
increasingly being used to make decisions to improve websites as well as mobile
and desktop applications. We argue that loss of telemetry data (during upload
or post-processing) can skew the results of experiments, leading to loss of
statistical power and inaccurate or erroneous conclusions. By systematically
investigating the causes of telemetry loss, we argue that it is not practical
to entirely eliminate it. Consequently, experimentation systems need to be
robust to its effects. Furthermore, we note that it is nontrivial to measure
the absolute level of telemetry loss in an experimentation system. In this
paper, we take a top-down approach towards solving this problem. We motivate
the impact of loss qualitatively using experiments in real applications
deployed at scale, and formalize the problem by presenting a theoretical
breakdown of the bias introduced by loss. Based on this foundation, we present
a general framework for quantitatively evaluating the impact of telemetry loss,
and present two solutions to measure the absolute levels of loss. This
framework is used by well-known applications at Microsoft, with millions of
users and billions of sessions. These general principles can be adopted by any
application to improve the overall trustworthiness of experimentation and
data-driven decision making.Comment: Proceedings of the 27th ACM International Conference on Information
and Knowledge Management, October 201
Enhancing Bug Reports for Mobile Apps
The modern software development landscape has seen a shift in focus toward
mobile applications as "smart" devices near ubiquitous adoption. Due to this
trend, the complexity of mobile applications has been increasing, making
development and maintenance particularly challenging. However, it is clear that
current bug tracking systems are not able effectively support construction of
reports with actionable information that will directly lead to a bug's
resolution. To address the need for an improved reporting system, we introduce
a novel solution, called FUSION, that helps users auto-complete reproduction
steps in bug reports for mobile apps. FUSION links information, that users
provide, to program artifacts extracted through static and dynamic analysis
performed before testing or release. The approach that FUSION employs is
generalizable to other current mobile software platforms, and constitutes a new
method by which off-device bug reporting can be conducted for mobile software
projects. We evaluate FUSION by conducting a study that quantitatively and
qualitatively measures the user experience of the system for both reporting and
reproducing bugs, as well as the quality of the bug reports it produces. In a
study involving 28 participants we apply FUSION to support the maintenance
tasks of reporting and reproducing defects on 15 real-world bugs found in 14
open source Android apps. Our results demonstrate that FUSION allows for more
reliable reproduction of bugs from reports by aiding users in reporting more
detailed application-specific information compared to traditional bug tracking
systems.Comment: 77 pages, MS Thesis presented to the faculty @ the College of William
& Mar
Automating Software Development for Mobile Computing Platforms (Doctoral Symposium)
Mobile devices such as smartphones and tablets have become ubiquitous in
today's modern computing landscape. The applications that run on these mobile
devices (often referred to as "apps") have become a primary means of computing
for millions of users and, as such, have garnered immense developer interest.
These apps allow for unique, personal software experiences through touch-based
UIs and a complex assortment of sensors. However designing and implementing
high quality mobile apps can be a difficult process. This is primarily due to
challenges unique to mobile development including change-prone APIs and
platform fragmentation, just to name a few. This paper presents the motivation
and an overview of a dissertation which presents new approaches for automating
and improving mobile app design and development practices. Additionally, this
paper discusses potential avenues for future research based upon the work
conducted, as well as general lessons learned during the author's tenure as a
doctoral student in the general areas of software engineering, maintenance, and
evolution.Comment: Accepted to the 34th International Conference on Software Maintenance
and Evolution (ICSME'18), Doctoral Symposium (Post-Doctoral Track
- …