论文

MASTOR:用于 RESTful API 的语义测试 Oracle 生成的多代理方法

MASTOR: A Multi-Agent Approach to Semantic Test Oracle Generation for RESTful APIs

智能体系统Agent 协作

摘要

现有的自动化 RESTful API 测试方法通常依赖于简单的检查(例如 HTTP 状态代码、模式一致性),这不足以检测语义错误、业务逻辑违规和状态相关的不一致。为了解决这个问题,我们提出了 MASTOR,一种多代理方法,用于根据实现源代码为 RESTful API 生成语义测试预言机。 MASTOR由两个阶段组成:源码分析和预言机生成。前者采用源提取代理通过分析相关源文件的传递导入闭包来为每个端点操作构建源上下文。后者在收集的上下文上采用两个并行的预言机生成路径:一个为每个操作生成状态和现场预言机的单操作路径,以及一个通过利用跨操作语义关联为操作序列生成行为一致性预言机的多操作路径。两种路径都采用挑战者代理审查,其中专门的审查员识别弱点并发出改进提示以指导有针对性的再生,然后进行预言机标准化以过滤掉结构上无效的预言机。我们根据来自 WFD 和 PRAB 数据集的 13 个开源 RESTful API 项目(296 个操作,251,303 行代码)的基准评估了 MASTOR。 MASTOR 的平均突变得分为 75.4%,生成了 10,022 个预言。这些预言通过 ToJUnit 和 ToPostmanAssertify 转换为可执行断言,并通过 ToReadable 转换为人类可读的描述。在对 50 个选定操作的基线比较中,MASTOR 比直接提示高 30.1 个百分点(69.9% 对 39.8%),比 SATORI 高 49.4 个百分点(69.9% 对 20.5%)。