Automated API-Usage update for android apps

Mattia Fazzini, Qi Xin, Alessandro Orso

Research output: Chapter in Book/Report/Conference proceedingConference contribution

51 Scopus citations

Abstract

Mobile apps rely heavily on the application programming interface (API) provided by their underlying operating system (OS). Because OS and API can change frequently, developers must quickly update their apps to ensure that the apps behave as intended with new API and OS versions. To help developers with this tedious, error prone, and time consuming task, we developed a technique that can automatically perform app updates for API changes based on examples of how other developers evolved their apps for the same changes. Given a target app to be updated and information about the changes in the API, our technique performs four main steps. First, it analyzes the target app to identify code affected by API changes. Second, it searches existing code bases for examples of updates to the new version of the API. Third, it analyzes, ranks, and transforms into generic patches the update examples found in the previous step. Finally, it applies the generated patches to the target app in order of ranking, while performing differential testing to validate the update. We implemented our technique and performed an empirical evaluation on 15 real-world apps with promising results. Overall, our technique was able to update 85% of the API changes considered and automatically validate 68% of the updates performed.

Original languageEnglish (US)
Title of host publicationISSTA 2019 - Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis
EditorsDongmei Zhang, Anders Moller
PublisherAssociation for Computing Machinery, Inc
Pages78-89
Number of pages12
ISBN (Electronic)9781450362245
DOIs
StatePublished - Jul 10 2019
Externally publishedYes
Event28th ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2019 - Beijing, China
Duration: Jul 15 2019Jul 19 2019

Publication series

NameISSTA 2019 - Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis

Conference

Conference28th ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2019
Country/TerritoryChina
CityBeijing
Period7/15/197/19/19

Bibliographical note

Funding Information:
This work was partially supported by NSF, under grants CCF-1161821 and CCF-1563991, DARPA, under contracts FA8650-15-C-7556 and FA8650-16-C-7620, ONR, under contract N00014-17-1-2895, and gifts from Google, IBM Research, and Microsoft Research. Na Meng, Miryung Kim, and Kathryn McKinley helped us with the comparison between AppEvolve and LASE.

Publisher Copyright:
© 2019 Copyright held by the owner/author(s). Publication rights licensed to ACM.

Keywords

  • API analysis
  • Automated update
  • Mobile apps

Fingerprint

Dive into the research topics of 'Automated API-Usage update for android apps'. Together they form a unique fingerprint.

Cite this