Software Engineering Empirical Research Radar

Flaky test detection in Android via event order exploration.

Paper detail page in SEER Radar.

Authors

Zhen Dong, Abhishek Tiwari 0001, Xiao Liang Yu, Abhik Roychoudhury

Venue / Year

FSE 2021

Topics

Testing / QA; DevOps / CI / Build / Release; Mobile / Web / GUI / Android

Abstract / Summary

Validation of Android apps via testing is difficult owing to the presence of flaky tests. Due to non-deterministic execution environments, a sequence of events (a test) may lead to success or failure in unpredictable ways. In this work, we present an approach and tool FlakeScanner for detecting flaky tests through exploration of event orders. Our key observation is that for a test in a mobile app, there is a testing framework thread which creates the test events, a main User-Interface (UI) thread processing these events, and there may be several other background threads running asynchronously. For any event e whose execution involves potential non-determinism, we localize the earliest (latest) event after (before) which e must happen. We then efficiently explore the schedules between the upper/lower bound events while grouping events within a single statement, to find whether the test outcome is flaky. We also create a suite of subject programs called FlakyAppRepo (containing 33 widely-used Android projects) to study flaky tests in Android apps. Our experiments on the subject-suite FlakyAppRepo show FlakeScanner detected 45 out of 52 known flaky tests as well as 245 previously unknown flaky tests among 1444 tests.

External Links

DOI / Publisher

PDF

Local PDF is not available on SEER Radar yet. When a public source is recorded, this page will add a local reading link with source attribution.