MASTOR: A Multi-Agent Approach to Semantic Test Oracle Generation for RESTful APIs
MASTOR 是一个利用源代码分析和挑战者代理(challenger-agent)审查过程来生成 RESTful API 语义测试断言的多智能体框架,它在检测业务逻辑违规方面显著优于现有基准,并实现了 75.4% 的变异分数。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在为一个生产数字产品(API)的庞大且复杂的工厂招聘一支检查团队。这个工厂拥有数百台不同的机器(端点),它们接收输入并产出产品。
传统上,在测试这些机器时,检查员只检查运输标签。他们会问:“机器启动了吗?它是否贴上了‘成功’标签(HTTP 200)?包装盒形状对吗?”如果标签是绿色的,且盒子看起来没问题,检查员就会说:“没问题!”
问题所在:
论文指出,这样做是非常危险的。一台机器内部可能已经损坏,正在生产错误的产品,但它仍然能给包装贴上一个完美的“成功”标签,并保持正确的形状。标签并不能告诉你包装内的产品是否真的是客户订购的那件。这是一个“语义”层面的失败——即便表面看起来完好无损,其逻辑也是错误的。
解决方案:MASTOR
作者构建了一个名为 MASTOR(多智能体语义测试预言生成系统)的新系统。MASTOR 不仅仅观察运输标签,它还会派遣一支专业的智能体团队走进工厂车间,阅读蓝图(源代码),并准确理解每台机器应该如何运作。
以下是 MASTOR 的工作原理,分为几个简单的步骤:
1. 蓝图阅读器(源码分析)
在测试之前,MASTOR 会向工厂发送一个源码提取智能体。
- 它做什么: 它不仅仅观察单台机器,它还会追踪连接到该机器的每一根电线、管道和指令手册(即“传递性导入闭包”)。
- 结果: 它为每台机器创建了一个详细的“源码上下文”。这就像是一份详细的备忘录,上面写着:“如果你输入的数字小于 2,机器必须返回一个‘错误请求’(Bad Request)错误。如果你输入一个有效的名称,它必须返回特定的首都名称。”
2. 双轨检查团队(预言生成)
一旦备忘录准备就绪,MASTOR 会将工作分为两个并行团队:
- A 队(单操作路径): 这些智能体一次只观察一台机器。它们会问:“如果我给这台机器一个错误的输入,它是否能正确地崩溃并返回正确的错误代码?如果我给它一个正确的输入,它是否返回了完全正确的字段数据?”它们使用四种不同的策略(例如检查边界和反转逻辑)来确保不会遗漏任何细节。
- B 队(多操作路径): 这些智能体观察机器之间是如何相互通信的。例如,机器 A 创建了一个用户并分配了一个 ID。机器 B 需要利用这个 ID 来获取用户资料。B 队会检查:“机器 A 是否真的正确保存了该 ID,以便机器 B 稍后可以找到它?”这能捕捉到在机器协同工作时发生的错误。
3. 严格的编辑者(挑战者智能体)
这是核心秘诀。在各团队编写完检查规则(预言)后,它们并不会直接上交。
- 审查: 一个专门的挑战者智能体(一位严厉的编辑)会阅读每一条规则。它会问:“你确定吗?你是真的读了蓝图,还是在瞎猜?”
- 修正: 如果编辑发现了一条薄弱的规则或猜测,它会将规则退回给原团队并附上备注:“回去重新修正这个特定部分。”团队随后会仅针对该部分进行重写。这确保了最终的规则是坚如磐石的,且基于真实证据而非幻觉。
4. 最终报告(规范化与输出)
最后,系统会对规则进行清理,剔除任何不合理的规则,并将结果转化为三种有用的格式:
- 可执行代码: 准备好在 CI/CD 流水线中自动运行(就像每天晚上检查工厂的机器人)。
- Postman 脚本: 方便开发人员进行手动测试。
- 人类可读文本: 一段纯英文描述,以便人类能够阅读并理解为什么存在这项测试。
结果(计分板)
作者在 13 个真实的工厂项目(包含超过 25 万行代码和 296 台不同的机器)上测试了该系统。
- 得分: MASTOR 捕捉到了植入代码中的 75.4% 的隐藏漏洞(突变)。
- 对比:
- 与仅根据运输标签让聪明 AI 进行猜测(直接提示词法)相比,MASTOR 的表现提升了 30%。
- 与仅阅读官方手册的工具(SATORI)相比,MASTOR 的表现提升了 49%。
- 原因: 因为 SATORI 和直接提示词法依赖于书面记录或猜测。而 MASTOR 依赖于实际的代码。如果手册说“返回一个列表”,但代码写的是“仅在用户是管理员时才返回列表”,MASTOR 知道真相,因为它读了代码。
成本
该系统的运行成本比简单的猜测要高一些(平均每台 API 成本约为 0.56 美元),但作者认为这是值得的,因为它能发现其他工具会错过的深层、隐藏的逻辑错误。
总结:
MASTOR 就像是聘请了一支专家侦探团队,他们不仅检查产品的包装,还通过阅读工厂内部的电路图,确保内部的产品完全符合预期。他们通过相互校验来确保没有任何错误溜掉,从而构建了一个更高质量的安全网。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。