Denys Poshyvanyk
Maintaining and Evolving Mobile Apps
Abstract
The mobile handset industry has been growing at an unprecedented rate.
This global app economy that encompasses millions of apps and
developers, supporting billions of devices and users, has been a
tremendous success. Many of these mobile apps have features that rival
their desktop counterparts and span several domain categories from
games to medical apps. Yet, app developers and testers face new and
emerging challenges such as rapid platform/library evolution resulting
in API instability, platform fragmentation, continuous market pressure
for frequent releases, energy consumption issues, and countless
unstructured user reviews that need to be analyzed to find bugs and
improve apps.
In this tutorial I will present specific solutions aimed at supporting
key maintenance activities by mobile developers. First, I will
overview a number of existing approaches for testing mobile apps,
including our recent work on mining Android app usages for the purpose
of generating actionable GUI-based execution scenarios on real
devices. The approach aims at mining models capable of generating
feasible and fully replayable scenarios reflecting either natural user
behavior or uncommon usages (e.g., corner cases) for a given app.
Second, I will present solutions for supporting bug reporting and
crash discovery in mobile apps that rely upon program artifacts
extracted through static and dynamic analyses. Third, I will talk
about challenges and solutions for optimizing energy consumption in
Android apps. Finally, I will highlight the opportunities that exist
in this research area, in terms of open technical problems and the
potential benefits of solving these problems.
Speaker's Bio
Denys Poshyvanyk is an Associate Professor in the Department of
Computer Science at the College of William and Mary (W&M) in Virginia,
USA where he leads SEMERU research group. His research interests are
in the area of software engineering, evolution, maintenance and
program comprehension. His recent research projects span topics such
as large-scale repository mining, traceability, mobile app (Android)
development and testing, performance testing, energy consumption, and
code reuse.
|