一句话:提出 DSTest,在应用层拦截消息实现语言无关、免插桩的通用受控并发测试工具。
受控并发测试(CCT)是测试分布式系统实现的有效手段,但现有 CCT 工具受限于语言依赖性,且需要源码插桩,导致难以应用于真实生产系统。本文提出 DSTest,一种通用的 CCT 工具:它在应用层拦截消息,从而消除插桩开销,并以极少的输入实现语言无关。DSTest 提供清晰、模块化的接口,便于扩展以接入各种面向 CCT 的事件调度器。作者将 DSTest 与三种知名事件调度器打包,并通过将其应用于流行的生产系统来验证工具的有效性。
Controlled concurrency testing (CCT) is an effective approach for testing distributed system implementations. However, existing CCT tools suffer from the drawbacks of language dependency and the cost of source code instrumentation, which makes them difficult to apply to real-world production systems. We propose DSTest, a generalized CCT tool for testing distributed system implementations. DSTest intercepts messages on the application layer and, hence, eliminates the instrumentation cost and achieves language independence with minimal input. We provide a clean and modular interface to extend DSTest for various event schedulers for CCT. We package DSTest with three well-known event schedulers and validate the tool by applying it to popular production systems.