Efficiently Manifesting Asynchronous Programming Errors in Android Apps

08/09/2018
by   Lingling Fan, et al.
0

Android, the #1 mobile app framework, enforces the single-GUI-thread model, in which a single UI thread manages GUI rendering and event dispatching. Due to this model, it is vital to avoid blocking the UI thread for responsiveness. One common practice is to offload long-running tasks into async threads. To achieve this, Android provides various async programming constructs, and leaves developers themselves to obey the rules implied by the model. However, as our study reveals, more than 25 hard-to-detect, fail-stop errors, which we term as aysnc programming errors (APEs). To this end, this paper introduces APEChecker, a technique to automatically and efficiently manifest APEs. The key idea is to characterize APEs as specific fault patterns, and synergistically combine static analysis and dynamic UI exploration to detect and verify such errors. Among the 40 real-world Android apps, APEChecker unveils and processes 61 APEs, of which 51 are confirmed (83.6 than the state-of-art testing tools (Monkey, Sapienz and Stoat), and reduces testing time from half an hour to a few minutes. On a specific type of APEs, APEChecker confirms 5X more errors than the data race detection tool, EventRacer, with very few false alarms.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/22/2018

Large-Scale Analysis of Framework-Specific Exceptions in Android Apps

Mobile apps have become ubiquitous. For app developers, it is a key prio...
research
11/02/2021

SOURCERER: Developer-Driven Security Testing Framework for Android Apps

Frequently advised secure development recommendations often fall short i...
research
02/12/2021

Speculating Ineffective UI Exploration via Trace Analysis

With the prosperity of mobile apps, quality assurance of mobile apps bec...
research
07/02/2020

CRYLOGGER: Detecting Crypto Misuses Dynamically

Cryptographic (crypto) algorithms are the essential ingredients of all s...
research
05/21/2020

Concurrency-related Flaky Test Detection in Android apps

Validation of Android apps via testing is difficult owing to the presenc...
research
01/07/2021

Deep Reinforcement Learning for Black-Box Testing of Android Apps

The state space of Android apps is huge and its thorough exploration dur...
research
06/12/2019

Lifestate: Event-Driven Protocols and Callback Control Flow

Developing interactive applications (apps) against event-driven software...

Please sign up or login with your details

Forgot password? Click here to reset