中文

SATORI:REST API 的静态测试预言机生成

软件工程 2025-09-03 v2

摘要

REST API 测试用例生成工具正在快速发展,自动生成复杂测试的能力日益增强。然而,尽管这些工具在测试数据生成方面表现出色,其所支持的测试预言机类型却受到限制,通常仅限于崩溃检测、回归测试以及不符合 API 规范或设计标准的情况。本文介绍了 SATORI(Static API Test ORacle Inference),一种通过分析 OpenAPI 规范为 REST API 生成测试预言机的黑盒方法。SATORI 利用大语言模型,通过分析 API 各操作的响应字段属性(如名称与描述)来推断 API 的预期行为。为促进其采纳,我们将 PostmanAssertify 工具进行了扩展,使其能够自动将 SATORI 报告的测试预言机转换为可执行的断言。在来自 12 个工业 API 的 17 个操作上的评估结果表明,SATORI 每个操作可自动生成数百个有效的测试预言机。在生成可比预言机类型时,SATORI 取得了 74.3% 的 F1 分数,超越了需要执行 API 的最先进动态方法 AGORA+(69.3%)。此外,我们的结果表明静态与动态预言机推断方法是互补的:SATORI 与 AGORA+ 共同找到了标注真值数据集中 90% 的预言机。值得注意的是,SATORI 在热门 API(Amadeus Hotel、Deutschebahn、FDIC、GitLab、Marvel、OMDb 和 Vimeo)中发现了 18 个缺陷,促使 API 维护者更新了文档。

关键词

引用

@article{arxiv.2508.16318,
  title  = {SATORI: Static Test Oracle Generation for REST APIs},
  author = {Juan C. Alonso and Alberto Martin-Lopez and Sergio Segura and Gabriele Bavota and Antonio Ruiz-Cortés},
  journal= {arXiv preprint arXiv:2508.16318},
  year   = {2025}
}

备注

Accepted for publication at 40th IEEE/ACM International Conference on Automated Software Engineering, ASE 2025