Litcius/Paper detail

Modeling and ranking flaky tests at Apple

Emily Kowalczyk, K. Ravindran Nair, Zebao Gao, Leo Silberstein, Teng Long, Atif M. Memon

202043 citationsDOI

Abstract

Test flakiness---inability to reliably repeat a test's Pass/Fail outcome---continues to be a significant problem in Industry, adversely impacting continuous integration and test pipelines. Completely eliminating flaky tests is not a realistic option as a significant fraction of system tests (typically non-hermetic) for services-based implementations exhibit some level of flakiness. In this paper, we view the flakiness of a test as a rankable value, which we quantify, track and assign a confidence. We develop two ways to model flakiness, capturing the randomness of test results via entropy, and the temporal variation via flipRate, and aggregating these over time. We have implemented our flakiness scoring service and discuss how its adoption has impacted test suites of two large services at Apple. We show how flakiness is distributed across the tests in these services, including typical score ranges and outliers. The flakiness scores are used to monitor and detect changes in flakiness trends. Evaluation results demonstrate near perfect accuracy in ranking, identification and alignment with human interpretation. The scores were used to identify 2 causes of flakiness in the dataset evaluated, which have been confirmed, and where fixes have been implemented or are underway. Our models reduced flakiness by 44% with less than 1% loss in fault detection.

Topics & Concepts

Computer scienceRanking (information retrieval)Artificial intelligenceSoftware Testing and Debugging TechniquesSoftware Engineering ResearchSoftware System Performance and Reliability
Modeling and ranking flaky tests at Apple | Litcius