Evaluating NonDex for Modern Java Ecosystem
NonDex is a testing approach designed to unveil implementation-dependent (ID) flaky tests stemming from in-correctly relying on a deterministic implementation of a Java API with an underdetermined specification, e.g., iterating over elements of a HashSet object. Since the original Nondex work was published in 2016, we have enhanced the tool functionality and expanded its integration with recent Java versions and build tools like Maven and Gradle. This evolution enables Nondex to analyze a broader range of large, open-source Java projects. This paper investigates our updated Nondex on modern Java projects. We identified 734 ID flaky tests in 31 Maven projects and 267 ID flaky tests in 25 Gradle projects. Comparing these findings to prior work, this study highlights an increase for a modern Java project to contain some ID flaky test(s). We also studied the propagation of ID flakiness through project dependencies and fixed a key non-determinism issue in the Gradle build system itself. Our study emphasizes the importance of proactively employing NOndexto detect and fix flaky tests, preventing potential disruptions in ongoing and future projects. We put all our results at https://github.com/NonDexFTW/NonDex-Experiments.
Authors
- Kaiyao Ke (ORCID: https://orcid.org/0000-0002-0846-1923)
- Darko Marinov (ORCID: https://orcid.org/0000-0001-5023-3492)
Institutions
- University of Illinois Urbana-Champaign (US)
Publication Details
- Published
- 2025-04-27
- DOI
- https://doi.org/10.1109/ftw66604.2025.00011
- Primary Topic
- Business Process Modeling and Analysis
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- National Science Foundation