Litcius/Paper detail

Flaky test detection in Android via event order exploration

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

202123 citationsDOIOpen Access PDF

Abstract

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.

Topics & Concepts

Computer scienceAndroid (operating system)Test suiteSuiteThread (computing)Operating systemEmbedded systemTest caseMachine learningHistoryArchaeologyRegression analysisSoftware Testing and Debugging TechniquesSoftware System Performance and ReliabilityAdvanced Malware Detection Techniques
Flaky test detection in Android via event order exploration | Litcius