一句话:对 Web 与 Android 项目的 235 个 UI flaky 测试样本进行实证研究,归纳根因、触发策略与修复策略。
现有 flaky test 研究多集中于传统单元测试,忽视 UI 测试输入空间更大、运行条件更多样且更复杂、资源开销高,难以通过重复运行来检测的问题。本文分析来自 62 个 Web 和 Android 项目的 235 个 UI flaky 测试样本,识别其常见根本原因、用于显现 flaky 行为的策略以及修复策略。研究结果为 UI 测试 flakiness 的检测与预防技术奠定基础。
Flaky tests have gained attention from the research community in recent years and with good reason. These tests lead to wasted time and resources, and they reduce the reliability of the test suites and build systems they affect. However, most of the existing work on flaky tests focus exclusively on traditional unit tests. This work ignores UI tests that have larger input spaces and more diverse running conditions than traditional unit tests. In addition, UI tests tend to be more complex and resource-heavy, making them unsuited for detection techniques involving rerunning test suites multiple times. In this paper, we perform a study on flaky UI tests. We analyze 235 flaky UI test samples found in 62 projects from both web and Android environments. We identify the common underlying root causes of flakiness in the UI tests, the strategies used to manifest the flaky behavior, and the fixing strategies used to remedy flaky UI tests. The findings made in this work can provide a foundation for the development of detection and prevention techniques for flakiness arising in UI tests.