论文
MIRAGE:微服务依赖性测试的在线 LLM 模拟
MIRAGE: Online LLM Simulation for Microservice Dependency Testing
摘要
现有的微服务依赖性模拟方法(记录重放、模式挖掘和规范驱动的存根)会在测试执行之前生成静态工件。这些工件只能重现生成时编码的行为;在典型跟踪语料库中代表性不足的错误处理和代码推理场景中,记录重放在我们的评估中实现了 0% 和 12% 的保真度。我们提出在线 LLM 模拟,这是一种运行时方法,其中 LLM 在每个依赖项请求到达时对其进行响应,在整个测试场景中维护交叉请求状态。该模型读取依赖项的源代码、调用者代码和生产跟踪,然后模拟按需行为 - 交易延迟(每个请求约 3 秒)和成本(每个依赖项 0.16-0.82 美元),以覆盖静态工件遗漏的场景。我们在 MIRAGE 中实例化了这种方法,并在三个微服务系统(Google 的 Online Boutique、Weaveworks 的 Sock Shop 和自定义系统)的 110 个测试场景中对其进行了评估。在白盒模式下,MIRAGE 可实现 99% 的状态代码保真度和 99% 的响应形状保真度,而记录重放的保真度为 62% / 16%。信号消融表明依赖源代码通常就足够了(100% 单独);如果没有它,模型会保留错误代码准确性 (94%),但会失去响应结构保真度 (75%)。结果在三个 LLM 系列中保持稳定(在 3% 以内),并且在重复运行中具有确定性。调用者集成测试使用 MIRAGE 产生与真实依赖项相同的通过/失败结果(8/8 场景)。