2018 · 75 citations · 6 references
ComputingComputer ScienceComputer SystemsMobile ComputingMobile SystemsSoftware EngineeringApplication Security TestingFuzz TestingMobile Application DevelopmentMobile Application VulnerabilitiesSoftware TestingStatic Application Security TestingAndroid Application AnalysisAndroid Application Security TestingAndroid Application VulnerabilitiesEmpirical EvaluationMobile App TestingMobile Application Security TestingRoot CausesTest Flakiness
A flaky test is a test that may fail or pass for the same code under testing (CUT). Flaky tests could be harmful to developers because the non-deterministic test outcome is not reliable and developers cannot easily debug the code. A prior study characterized the root causes and fixing strategies of flaky tests by analyzing commits of 51 Apache open source projects, without analyzing any Android app. Due to the popular usage of Android devices and the multitude of interactions of Android apps with third-party software libraries, hardware, network, and users, we were curious to find if the Android apps manifested unique flakiness patterns and called for any special resolution for flaky tests as compared to the existing literature. For this paper, we conducted an empirical study to characterize the flaky tests in Android apps. By classifying the root causes and fixing strategies of flakiness, we aimed to investigate how our proposed characterization for flakiness in Android apps varies from prior findings, and whether there are domain-specific flakiness patterns. After mining GitHub, we found 29 Android projects containing 77 commits that were relevant to flakiness. We identified five root causes of Android apps' flakiness. We revealed three novel causes - <i xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Dependency, Program Logic, and UI</i> . Five types of resolution strategies were observed to address the flaky behavior. Many of the examined commits show developers' attempt to fix flakiness by changing software implementation in various ways. However, there are still 13% commits that simply skipped or removed the flaky tests. Our observations provide useful insights for future research on flaky tests of Android apps.
6
An empirical analysis of flaky tests
Qingzhou Luo, Farah Hariri, Lamyaa Eloussi et al. · 2014 · 418 citations
Understanding Android Fragmentation with Topic Analysis of Vendor-Specific Bugs
Dan Han, Chenlei Zhang, Xiaochao Fan et al. · 2012 · 116 citations
An empirical study of bugs in test code
Arash Vahabzadeh, Amin Milani Fard, Ali Mesbah · 2015 · 108 citations