Understanding Flaky Tests: The Developer's Perspective
arXiv:1907.01466 · doi:10.1145/3338906.3338945
Abstract
Flaky tests are software tests that exhibit a seemingly random outcome (pass or fail) when run against the same, identical code. Previous work has examined fixes to flaky tests and has proposed automated solutions to locate as well as fix flaky tests--we complement it by examining the perceptions of software developers about the nature, relevance, and challenges of this phenomenon. We asked 21 professional developers to classify 200 flaky tests they previously fixed, in terms of the nature of the flakiness, the origin of the flakiness, and the fixing effort. We complement this analysis with information about the fixing strategy. Subsequently, we conducted an online survey with 121 developers with a median industrial programming experience of five years. Our research shows that: The flakiness is due to several different causes, four of which have never been reported before, despite being the most costly to fix; flakiness is perceived as significant by the vast majority of developers, regardless of their team's size and project's domain, and it can have effects on resource allocation, scheduling, and the perceived reliability of the test suite; and the challenges developers report to face regard mostly the reproduction of the flaky behavior and the identification of the cause for the flakiness. Data and materials [https://doi.org/10.5281/zenodo.3265785].
References in corpus (1)
Cited by in corpus (22)
- Understanding Flaky Tests: The Developer's Perspective
- An Empirical Study of Flaky Tests in Python
- Flakify: A Black-Box, Language Model-based Predictor for Flaky Tests
- Empirical Study of Restarted and Flaky Builds on Travis CI
- Assessing test artifact quality -- A tertiary study
- On the use of test smells for prediction of flaky tests
- Empirical Analysis of Factors and their Effect on Test Flakiness - Practitioners' Perceptions
- FlakyFix: Using Large Language Models for Predicting Flaky Test Fix Categories and Test Code Repair
- Concurrency-related Flaky Test Detection in Android apps
- Identifying Flakiness in Quantum Programs
- WEFix: Intelligent Automatic Generation of Explicit Waits for Efficient Web End-to-End Flaky Tests
- The Vocabulary of Flaky Tests in the Context of SAP HANA
- Automated flakiness detection in quantum software bug reports
- On the Diagnosis of Flaky Job Failures: Understanding and Prioritizing Failure Categories
- Automated System-Level Software Testing of Industrial Networked Embedded Systems
- DUETS: A Dataset of Reproducible Pairs ofJava Library-Clients
- On the Use of Mutation in Injecting Test Order-Dependency
- What Evidence We Would Miss If We Do Not Use Grey Literature?
- Discerning Legitimate Failures From False Alerts: A Study of Chromium's Continuous Integration
- An Empirical Analysis of UI-based Flaky Tests
- What is the Vocabulary of Flaky Tests? An Extended Replication
- Automated Support for Unit Test Generation: A Tutorial Book Chapter