Skip to main navigation Skip to search Skip to main content

DROIDStar: Callback typestates for Android classes

  • Arjun Radhakrishna
  • , Nicholas V. Lewchenko
  • , Shawn Meier
  • , Sergio Mover
  • , Krishna Chaitanya Sripada
  • , Damien Zufferey
  • , Bor Yuh Evan Chang
  • , Pavol Černý
  • Microsoft Corporation
  • University of Colorado Boulder
  • Max Planck Institute for Software Systems

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

8 Citations (Scopus)

Abstract

Event-driven programming frameworks, such as Android, are based on components with asynchronous interfaces. The protocols for interacting with these components can often be described by finite-state machines we dub callback typestates. Callback typestates are akin to classical typestates, with the difference that their outputs (callbacks) are produced asynchronously. While useful, these specifications are not commonly available, because writing them is difficult and error-prone. Our goal is to make the task of producing callback typestates significantly easier. We present a callback typestate assistant tool, DroidStar, that requires only limited user interaction to produce a callback typestate. Our approach is based on an active learning algorithm, L∗. We improved the scalability of equivalence queries (a key component of L∗), thus making active learning tractable on the Android system. We use DroidStar to learn callback typestates for Android classes both for cases where one is already provided by the documentation, and for cases where the documentation is unclear. The results show that DROIDSTAR learns callback typestates accurately and efficiently. Moreover, in several cases, the synthesized callback typestates uncovered surprising and undocumented behaviors.

Original languageEnglish
Title of host publicationProceedings of the 40th International Conference on Software Engineering, ICSE 2018
PublisherIEEE Computer Society
Pages1160-1170
Number of pages11
ISBN (Electronic)9781450356381
DOIs
Publication statusPublished - 27 May 2018
Externally publishedYes
Event40th International Conference on Software Engineering, ICSE 2018 - Gothenburg, Sweden
Duration: 27 May 20183 Jun 2018

Publication series

NameProceedings - International Conference on Software Engineering
ISSN (Print)0270-5257

Conference

Conference40th International Conference on Software Engineering, ICSE 2018
Country/TerritorySweden
CityGothenburg
Period27/05/183/06/18

Keywords

  • Active learning
  • Android
  • Specification inference
  • Typestate

Fingerprint

Dive into the research topics of 'DROIDStar: Callback typestates for Android classes'. Together they form a unique fingerprint.

Cite this