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
摘要
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 an 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 very large 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 two strategies to eliminate the need for human involvement: (i) it automatically identifies callbacks by simultaneously analyzing both the Android framework and the app under test; (ii) it uses a combination of under-constrained symbolic execution (primitive arguments), and type-guided dynamic heap introspection (object arguments) to generate valid and effective inputs. Lastly, Columbus integrates two novel feedback mechanisms-data dependency and crash-guidance- during testing to increase the likelihood of triggering crashes and maximizing coverage. In our evaluation, Columbus outperforms state-of-the-art model-driven, checkpoint-based, and callback-driven testing tools both in terms of crashes and coverage.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper4
- Call Graph Soundness in Android Static AnalysisJordan Samhi, René Just, Tegawendé F. Bissyandé, Michael D. Ernst 等ISSTA 2024 · 被引用 8 次
- GUIPilot: A Consistency-Based Mobile GUI Testing Approach for Detecting Application-Specific BugsRuofan Liu, Xiwen Teoh, Yun Lin, Guanjie Chen 等ISSTA 2025 · 被引用 5 次
- Mobile Application Coverage: The 30% Curse and Ways ForwardFaridah Akinotcho, Lili Wei, Julia RubinICSE 2025 · 被引用 3 次
- MALintent: Coverage Guided Intent Fuzzing Framework for AndroidAmmar Askar, Fabian Fleischer, Christopher Kruegel, Giovanni Vigna 等NDSS 2025
它引用的顶会 Paper4
- TriggerScope: Towards Detecting Logic Bombs in Android ApplicationsYanick Fratantonio, Antonio Bianchi, William K. Robertson, Engin Kirda 等S&P 2016 · 被引用 161 次
- Time-travel testing of Android appsZhen Dong, Marcel Böhme, Lucia Cojocaru, Abhik RoychoudhuryICSE 2020 · 被引用 104 次
- ComboDroid: generating high-quality test inputs for Android apps via use case combinationsJue Wang, Yanyan Jiang, Chang Xu, Chun Cao 等ICSE 2020 · 被引用 61 次
- Multiple-entry testing of Android applications by constructing activity launching contextsJiwei Yan, Hao Liu, Linjie Pan, Jun Yan 等ICSE 2020 · 被引用 31 次
相关 Paper
- From Suspicious Signals to Crashes: Guiding Bug-Driven GUI Testing via Code-Inspired TracingMengzhuo Chen, Zhe Liu, Chunyang Chen, Junjie Wang 等FSE 2026
- IntelliDroid: A Targeted Input Generator for the Dynamic Analysis of Android MalwareMichelle Y. Wong, David LieNDSS 2016 · 被引用 253 次
- Automata-Based Trace Analysis for Aiding Diagnosing GUI Testing Tools for AndroidEnze Ma, Shan Huang, Weigang He, Ting Su 等FSE 2023 · 被引用 3 次
- An infrastructure approach to improving effectiveness of Android UI testing toolsWenyu Wang, Wing Lam, Tao XieISSTA 2021 · 被引用 33 次
- Mining Android API Usage to Generate Unit Test Cases for Pinpointing Compatibility IssuesXiaoyu Sun, Xiao Chen, Yanjie Zhao, Pei Liu 等ASE 2022 · 被引用 16 次
