论文
使用经过验证的 LLM 推断依赖性和响应驱动的细化进行 REST API 测试
REST API Testing with Verified LLM-Inferred Dependencies and Response-Driven Refinement
摘要
测试 RESTful API 需要生成 API 调用序列,以满足操作、参数和运行时创建的资源之间的依赖关系。最近基于 LLM 的方法推断此类依赖性并根据 OpenAPI 规范生成测试序列,但它们通常将 LLM 推断的关系视为正确,而无需基于执行的验证。这可能会引入虚假的依赖关系,错过可行的操作链,并产生不可行的测试。在本文中,我们提出了 APIPilot},这是一个用于 REST API 测试的执行验证框架。 APIPilot 首先使用结构启发式和基于 LLM 的语义推理从 OpenAPI 规范中导出候选生产者-消费者依赖关系。然后,它将这些依赖关系视为假设,并在使用它们进行测试生成之前通过具体的 API 执行来验证它们。经过验证的依赖关系被组织成一个依赖关系图,APIPilot 通过有界的 top-k 图遍历来构建覆盖感知工作流程,将语义依赖关系推理与序列构建分开。为了改进后续测试,APIPilot 进一步执行响应驱动的细化:分析运行时响应以更新资源池、调整输入生成约束以及修剪或修改无效的依赖关系映射。对 16 个真实 REST API 服务的实证评估表明,APIPilot 实现了 92.3% 的操作覆盖率、高达 58.6% 的代码覆盖率和 88.1% 的工作流执行成功率,优于基于 LLM 和传统 REST API 测试基线。 APIPilot 还检测到 197 个独特的 5xx 故障和规范执行不匹配,展示了执行反馈中基础依赖推理的好处。