利用错误信息分析提升 REST API 测试效果:Error Message Analysis 框架解析
“随着现代软件系统越来越依赖 REST API 进行服务交互,API 测试的重要性持续攀升。传统黑盒或随机测试往往只关注返回状态码,却忽略了极具价值的“错误信息”(Error Message)。然而,这些错误信息往往包含丰富的调试线索、函数执行路径提示、参数限制甚至内部状态。研究团队提出了 Error Message Analysis (EMA), 一种全新的 REST API 测试增强框架,通过系统化分析 API 返回的错误信息,生成更有效的测试请求,从而显著提升 API 测试的覆盖率与故障触发能力。”
📄 论文标题:Effective REST APIs Testing with Error Message Analysis
📅 发表时间:Proceedings of the ACM on Software Engineering(CCFA FSE), 2025
🏫 作者单位:南京大学、华为等
💡 开源代码: https://github.com/GIST-NJU/EmRest
01
—
方法介绍
论文提出的 EMA 框架通过三个核心步骤提升 REST API 测试效率:
① 错误信息收集:
对 API 的无效请求响应进行解析,提取错误码、异常文本、参数提示等关键信息。
② 错误语义理解:
将错误信息分类为 语法错误、语义冲突、权限问题、约束违背 等类型,用于指导后续输入生成。
③ 测试生成增强:
根据错误类别自动生成目标化测试输入,例如补全缺失参数、扩大输入范围、调整类型等。

图 1. EmRest中错误消息的采样和分析工作流程
小结:与传统 REST API 模糊测试方法相比,EMA 从“错误提示本身”挖掘测试语义,使测试过程更加智能化与高效。
02
—
关键机制
EMA 从“已知失败”中学习,让每一次错误都变成驱动下一次更好测试的依据。
- 错误信息驱动:
从错误消息反推输入生成逻辑,是传统 API 测试中未被充分利用的方向。
- 系统化错误分类体系:
使错误提示转化为可用于自动化推理的结构化语义。
- 组合测试生成:
通过 covering array 构建高效多参数组合,探索更深 API 状态空间。
- 黑盒可用性强:
完全基于 REST 协议和错误消息,不依赖源代码或内部文档。
|
模块 |
实现方式 |
主要作用 |
|---|---|---|
|
错误消息收集 |
捕获每个 API 调用的 HTTP 错误响应(4xx/5xx) |
提取参数缺失、非法输入、权限拒绝等问题来源 |
|
错误语义分类 |
基于消息模板与结构化规则解析错误文本 |
理解错误根因,用于指导自动化修复与测试生成 |
|
输入生成增强 |
根据错误类别自动生成修复后的测试输入 |
大幅提升 API 路径覆盖率与异常触发能力 |
|
组合测试机制 |
利用 covering array 技术生成多参数组合输入 |
探索更多 API 状态空间,提高测试深度 |
03
—
实验结果
研究团队在16个开源 REST API 测试对象上进行评估,其中10个API来自SOTA REST API测试方法ARAT-RL。实验比较对象包括 ARAT-RL, EvoMaster, Morest, RestCT, Schemathesis以及MINER 等工具。

图2 不同测试方法覆盖的操作数量

图3 不同测试方法实现的行覆盖率
EmRest是操作覆盖率最高的方法,在16个API中的8个API中超过了所有6个基线,在更复杂的GitLab API(GLProject)中覆盖了多达8.87个额外操作。此外,在所有API中,EmRest只能覆盖15个操作。

图4 30 次运行中所有检测到的独特 Bug 的重合率
在 16 个 API 中,EmRest 在其中 8 个 API 上检测到的独特错误数量超过了所有 6 个基线方法(最高提升达 134%)。总体而言,EmRest 检测出了实验中全部独特错误的 60%,其中有 26% 是仅由 EmRest 捕获。
小结:通过分析 400 段错误,EmRest 能识别并排除参数取值策略中的无效组合;它还会对有效取值进行变异,并利用 500 段错误来优先测试更容易出现缺陷的操作。在对 16 个真实世界 REST API 的实验中,EmRest 在测试覆盖率和缺陷检测能力上均优于现有方法。
📌 总结
Error Message Analysis (EMA) 通过对 API 错误信息进行系统化解析,实现了传统 REST API 测试的突破:让错误信息成为驱动高质量测试的“智能提示器”。EMA 无需源代码,无需协议内部文档,适合真实企业环境中的黑盒 API 测试系统。
📣 欢迎留言讨论
-
你认为未来 REST API 测试的核心瓶颈在于输入生成、执行监控还是结果分析?
-
如果让大模型帮忙解析错误消息,能否进一步提升 EMA 的效果?
📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)