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

This document is currently not available here.

Share

COinS