Automatically verifying and reproducing event-based races in android apps
Document Type
Conference Proceeding
Publication Date
7-18-2016
Abstract
Concurrency has been a perpetual problem in Android apps, mainly due to event-based races. Several event-based race detectors have been proposed, but they produce false positives, cannot reproduce races, and cannot distinguish between benign and harmful races. To address these issues, we introduce a race verification and reproduction approach named ERVA. Given a race report produced by a race detector, ERVA uses event dependency graphs, event flipping, and replay to verify the race and determine whether it is a false positive, or a true positive; for true positives, ERVA uses state comparison to distinguish benign races from harmful races. ERVA automatically produces an event schedule that can be used to deterministically reproduce the race, so developers can fix it. Experiments on 16 apps indicate that only 3% of the races reported by race detectors are harmful, and that ERVA can verify an app in 20 minutes on average.
Identifier
84984889358 (Scopus)
ISBN
[9781450343909]
Publication Title
Issta 2016 Proceedings of the 25th International Symposium on Software Testing and Analysis
External Full Text Location
https://doi.org/10.1145/2931037.2931069
First Page
377
Last Page
388
Grant
CNS-1064646
Fund Ref
National Science Foundation
Recommended Citation
Hu, Yongjian; Neamtiu, Iulian; and Alavi, Arash, "Automatically verifying and reproducing event-based races in android apps" (2016). Faculty Publications. 10379.
https://digitalcommons.njit.edu/fac_pubs/10379
