Columbus: Android App Testing Through Systematic Callback Exploration
Priyanka Bose, Dipanjan Das, Saastha Vasan, Sebastiano Mariani, Ilya, Grishchenko, Andrea Continella, Antonio Bianchi, Christopher Kruegel,, Giovanni Vigna

TL;DR
Columbus is an automated Android app testing tool that automatically identifies callbacks and generates effective inputs using symbolic execution and heap introspection, significantly improving crash detection and coverage.
Contribution
It introduces a fully automated callback identification and input generation approach for Android testing, removing the need for human expert involvement.
Findings
Outperforms existing testing tools in crash detection.
Achieves higher code coverage in Android apps.
Effectively triggers crashes using feedback-guided exploration.
Abstract
With the continuous rise in the popularity of Android mobile devices, automated testing of apps has become more important than ever. Android apps are event-driven programs. Unfortunately, generating all possible types of events by interacting with the app's interface is challenging for an automated testing approach. Callback-driven testing eliminates the need for event generation by directly invoking app callbacks. However, existing callback-driven testing techniques assume prior knowledge of Android callbacks, and they rely on a human expert, who is familiar with the Android API, to write stub code that prepares callback arguments before invocation. Since the Android API is huge and keeps evolving, prior techniques could only support a small fraction of callbacks present in the Android framework. In this work, we introduce Columbus, a callback-driven testing technique that employs…
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
TopicsSoftware Testing and Debugging Techniques · Software System Performance and Reliability · Advanced Malware Detection Techniques
