A Preliminary Study of Fixed Flaky Tests in Rust Projects on GitHub
Prior research has extensively studied flaky tests in various domains, such as web applications, mobile applications, and other open-source projects in a range of multiple programming languages, including Java, JavaScript, Python, Ruby, and more. However, little attention has been given to flaky tests in Rust-an emerging popular language known for its safety features relative to C/C++. Rust incorporates interesting features that make it easy to detect some flaky tests, e.g., the Rust standard library randomizes the order of elements in hash tables, effectively exposing implementation-dependent flakiness. However, Rust still has several sources of nondeterminism that can lead to flaky tests. We present our work-in-progress on studying flaky tests in Rust projects on GitHub. Searching through the closed GitHub issues and pull requests, we identified 1,146 issues potentially related to Rust flaky tests. We focus on flaky tests that are fixed, not just reported, as the fixes can offer valuable information on root causes, manifestation characteristics, and strategies of fixes. By far, we have inspected 53 tests. Our initial findings indicate that the predominant root causes include asynchronous wait (33.9%), concurrency issues (24.5%), logic errors (9.4%), and network-related problems (9.4%). Our artifact is publicly available at [1].
Authors
- Yang Chen (ORCID: https://orcid.org/0000-0001-7661-5923)
- Tom Schroeder
- Minh Phan
Institutions
- University of Illinois Urbana-Champaign (US)
Publication Details
- Published
- 2025-04-27
- DOI
- https://doi.org/10.1109/ftw66604.2025.00010
- Primary Topic
- Caching and Content Delivery
- Type
- article
- Field-Weighted Citation Impact
- 0.00