DroidStar: Callback Typestates for Android Classes
Arjun Radhakrishna, Nicholas V. Lewchenko, Shawn Meier, Sergio Mover,, Krishna Chaitanya Sripada, Damien Zufferey, Bor-Yuh Evan Chang, and Pavol, \v{C}ern\'y

TL;DR
DroidStar is a tool that uses active learning to automatically infer callback typestates for Android classes, simplifying the creation of asynchronous component specifications and uncovering undocumented behaviors.
Contribution
It introduces DroidStar, an active learning-based tool that efficiently infers callback typestates for Android classes with minimal user input.
Findings
Successfully learned callback typestates for multiple Android classes
Uncovered undocumented behaviors in Android components
Demonstrated efficiency and accuracy of DroidStar
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsMachine Learning and Algorithms · Software Testing and Debugging Techniques · Parallel Computing and Optimization Techniques
