Automated Functional Fuzzing of Android Apps

08/08/2020
by   Ting Su, et al.
0

Android apps are GUI-based event-driven software and have become ubiquitous in recent years. Besides fail-stop errors like app crashes, functional correctness is critical for an app's success. However, functional bugs (e.g., inadvertent function failures, sudden user data lost, and incorrect display information) are prevalent, even in popular, well-tested apps, due to significant challenges in effectively detecting them: (1) current practices heavily rely on expensive, small-scale manual validation (the lack of automation); and (2) modern automated testing has been limited to app crashes (the lack of test oracles). This paper fills this gap by introducing independent view fuzzing, the first automated approach for detecting functional bugs in Android apps. Our key insight is to leverage the commonly-held independent view property of Android apps to manufacture property-preserving mutant tests from a set of seed tests that validate certain app properties. The mutated tests help exercise the tested apps under additional, adverse conditions. Any property violations indicate likely functional bugs. We have realized our approach as a practical, end-to-end functional fuzzing tool, Genie. Given an off-the-shelf app, Genie (1) automatically detects functional bugs without requiring human-provided tests and oracles (thus fully automated), and (2) the detected functional bugs are diverse (thus general and not limited to specific functional properties). We have evaluated Genie on twelve popular, well-maintained Android apps and successfully uncovered 33 previously unknown functional bugs in their latest releases – all have been confirmed, and 21 have already been fixed. Most of the detected bugs are nontrivial and have escaped developer (and user) testing for at least one year and affected many app releases, thus clearly demonstrating Genie's practical utility.

READ FULL TEXT

page 18

page 20

research
06/06/2023

ωTest: WebView-Oriented Testing for Android Applications

WebView is a UI widget that helps integrate web applications into the na...
research
04/07/2018

MobiCoMonkey - Context Testing of Android Apps

The functionality of many mobile applications is dependent on various co...
research
11/23/2020

CAT: Change-focused Android GUI Testing

Android Apps are frequently updated, every couple of weeks, to keep up w...
research
09/22/2020

App Parameter Energy Profiling: Optimizing App Energy Drain by Finding Tunable App Parameters

In this paper, we observe that modern mobile apps come with a large numb...
research
06/14/2023

A statistical approach for finding property-access errors

We study the problem of finding incorrect property accesses in JavaScrip...
research
12/08/2022

The Metamorphosis: Automatic Detection of Scaling Issues for Mobile Apps

As the bridge between users and software, Graphical User Interface (GUI)...
research
08/10/2023

Testing Updated Apps by Adapting Learned Models

Although App updates are frequent and software engineers would like to v...

Please sign up or login with your details

Forgot password? Click here to reset