Efficiently Manifesting Asynchronous Programming Errors in Android Apps
Lingling Fan, Ting Su, Sen Chen, Guozhu Meng, Yang Liu, Lihua Xu,, Geguang Pu

TL;DR
This paper presents APEChecker, a novel tool that combines static and dynamic analysis to efficiently detect and verify asynchronous programming errors in Android apps, significantly outperforming existing testing tools.
Contribution
Introducing APEChecker, a new approach that characterizes and detects asynchronous programming errors in Android apps using combined static and dynamic analysis techniques.
Findings
APEChecker detects 3X more APEs than existing tools.
Reduces testing time from half an hour to a few minutes.
Confirms 5X more errors than data race detection tools.
Abstract
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% apps violate these rules and introduce 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.…
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.
