Android apps are event-driven, and generating various types of events through app interfaces for testing purposes can be challenging. To address this, in this paper we introduce COLUMBUS, a callback-driven testing technique. COLUMBUS automatically identifies callbacks, uses symbolic execution and dynamic heap introspection to generate valid inputs, and incorporates feedback mechanisms to enhance crash detection and coverage. In evaluations, COLUMBUS outperforms existing testing tools in terms of both crashes and coverage.
Priyanka Bose, Dipanjan Das, Saastha Vasan, Sebastiano Mariani, Ilya Grishchenko, Andrea Continella, Antonio Bianchi, Christopher Kruegel, Giovanni Vigna