一句话:提出 RediI 测试基础设施与 RediT 框架,可确定性控制分布式执行,以复现和回归测试分布式系统故障。
分布式系统回归测试困难:现有方案或需各团队定制专用环境且难以共享,或采用随机故障注入,成本高且无法保证防止回归。RediI 包含来自真实系统的 bug 数据集与通用测试框架 RediT;RediT 提供可编程、平台无关的确定性分布式执行控制,使开发者能编写复现失败的测试并自动运行。作者在 7 个大型常用分布式系统上选取 63 个 Jira bug 进行案例研究,结果表明 RediI 能有效复现故障、生成特定回归测试场景,并提供确定性故障注入,支持实际系统的回归测试。
Despite the fact that distributed systems have become a crucial aspect of modern technology and support many of the software systems that enable modern life, developers experience challenges in performing regression testing of these systems. Existing solutions for testing distributed systems are often either: (1) specialized testing environments that are created specifically for each system by its development team, which requires substantial effort for each team, with little-to-no sharing of this effort across teams; or (2) randomized injection tools that are often computationally expensive and offer no guarantees of preventing regressions, due to their randomness. The challenge of providing a generalized and practical solution to trigger bugs for reproducing and demonstrating failures, as well as to guard against regressions, is largely unaddressed. In this work, we present RediI, an infrastructure for supporting regression testing of distributed systems. RediI contains a dataset of real bugs on common distributed systems, along with a generalizable testing framework RediT that enables developers to write tests that can reproduce failures by providing ways to deterministically control distributed execution. In addition to the real failures in RediIfrom multiple distributed systems, RediT provides a reusable, programmable, platform-agnostic, deterministic testing framework for developers of distributed systems. It can help automate the running of such tests, for both practitioners and researchers. We demonstrate RediT with 63 bugs that we selected in Jira on 7 large and widely used distributed systems. Our case studies show that RediI can be used to allow developers to write tests that effectively reproduce failures on distributed systems and generate specific scenarios for regression testing, as well as providing deterministic failure injection that can help developers and researchers to better understand deterministic failures that may occur in distributed systems in the future. Additionally, our studies show that RediI is efficient for real-world system regression testing, providing a powerful tool for developers and researchers in the field of distributed-system testing.
DOI 原文 ·
@inproceedings{paperbot8723,
title = {RediI: Test Infrastructure to Enable Deterministic Reproduction of Failures for Distributed Systems},
author = {Yang Feng and Zheyuan Lin and Dongchen Zhao and Mengbo Zhou and Jia Liu and James A. Jones},
booktitle = {ICSE},
year = {2025},
doi = {10.1109/icse55347.2025.00244}
}