*********************************
There is now a CONTENT FREEZE for Mercury while we switch to a new platform. It began on Friday, March 10 at 6pm and will end on Wednesday, March 15 at noon. No new content can be created during this time, but all material in the system as of the beginning of the freeze will be migrated to the new platform, including users and groups. Functionally the new site is identical to the old one. webteam@gatech.edu
*********************************
Title: Automated Support for Improving Software Quality of Mobile Applications Before and After Release
Mattia Fazzini
Ph.D. Candidate in Computer Science
School of Computer Science
College of Computing
Georgia Institute of Technology
Date: Monday, June 17, 2019
Time: 1 - 3 p.m. (EDT)
Location: KACB 2100
Committee:
--------------------------------
Dr. Alessandro Orso (Advisor), School of Computer Science, Georgia Institute of Technology
Dr. Wenke Lee, School of Computer Science, Georgia Institute of Technology
Dr. Vivek Sarkar, School of Computer Science, Georgia Institute of Technology
Dr. Tevfik Bultan, Department of Computer Science, University of California, Santa Barbara
Dr. Denys Poshyvanyk, Department of Computer Science, College of William & Mary
Abstract:
--------------------------------
Mobile devices are becoming the platform of choice for a number of tasks, including news consumption, online shopping, and streaming content. Mobile applications (or simply apps) play an essential role in the success of mobile platforms and impact our lives fundamentally. To ensure the quality of these apps before release, companies invest a great amount of resources in software verification, and in particular in testing. It is therefore crucial to define and use testing approaches that are both effective and efficient. At the same time, because testing techniques cannot generally reveal all bugs, companies release apps containing latent bugs. Additionally, the environment in which apps operate changes quickly and these changes introduce new bugs. The ability to react effectively to reported latent bugs and changes to the environment is therefore also essential to resolve bugs, but the support for these tasks is still limited and based on mostly manual, human-intensive approaches. The overarching goal of this dissertation is to improve the software quality of mobile apps by devising automated testing and maintenance techniques that address these problems.
To this end, I defined a family of testing and maintenance techniques: Barista, DiffDroid, Yakusu, and AppEvolve. Barista records, encodes, and runs platform-independent test cases to help developers in testing apps. DiffDroid identifies inconsistencies in the behavior of an app running on different platforms and reports these inconsistencies to developers. Yakusu translates natural-language bug reports into test cases, so that developers can use the generated tests to debug failures caused by latent bugs and quickly fix their apps. AppEvolve accounts for bugs caused by changes to the environment; it does so by automatically updating API usages (i.e., interactions with the underlying environment) in an app based on how developers of other apps performed corresponding changes.
To evaluate the effectiveness of my techniques, I implemented them as prototype tools and performed a series of empirical investigations on real-world apps. The evaluation shows that the techniques are not only effective but also efficient. These results provide evidence that the techniques can be practically used to improve software quality of mobile apps before and after release.