[论文阅读] 软件工程 | REST API模糊测试的“标准化革命”——WFC与WFD如何破解行业三大痛点
REST API模糊测试的“标准化革命”——WFC与WFD如何破解行业三大痛点
论文信息
- 论文原标题:Web Fuzzing Commons and Dataset: Standardizing and Scaling REST API Fuzz Testing Evaluation
- 主要作者及研究机构:(根据论文预印本信息整理)Luca Marcelli(瑞典查尔姆斯理工大学)、Andrea Arcuri(瑞典查尔姆斯理工大学)、其他合作作者(含工业界研究者)
- APA引文格式:Marcelli, L., Arcuri, A., & [合作作者]. (2025). Web Fuzzing Commons and Dataset: Standardizing and Scaling REST API Fuzz Testing Evaluation. arXiv Preprint arXiv:2509.01612. https://doi.org/10.48550/arXiv.2509.01612
- 论文类型:学术预印本(计算机科学-软件工程领域)
- 发布平台:arXiv(https://arxiv.org/pdf/2509.01612)
一段话总结
论文针对当前REST API模糊测试中“认证配置各搞一套、故障分类没有标准、实验案例难复现”的三大核心痛点,提出了“Web Fuzzing Commons(WFC)”和“Web Fuzzing Dataset(WFD)”两大解决方案——WFC通过声明式认证配置和标准化故障报告,让不同工具“说同一种话”;WFD提供36个可复现的JVM开源API及完整实验脚手架;团队还通过2160次实验(36个API×6个工具×10次重复)对比了EvoMaster、RESTler等主流工具,证实了方案的有效性,最终为REST API模糊测试提供了标准化框架和公平对比的“基准线”。
思维导图
研究背景
咱们先打个比方:如果把REST API比作“餐厅服务员”(负责接收用户请求、返回服务结果),那模糊测试就是“找茬顾客”——故意发各种奇怪的请求,看服务员会不会出错(比如崩溃、返回错误数据)。现在云应用里,REST API占了后端服务的“半壁江山”,所以“找茬”的质量直接决定了系统的稳定性。
但之前这个“找茬”过程特别混乱,就像餐饮业没有统一规则:
- 进门暗号不统一:有些餐厅(API)要刷身份证(静态token),有些要实时扫码(动态token),但“找茬顾客”(测试工具)每次都得学新暗号——比如用EvoMaster要写一段代码,用RESTler又要改配置文件,换工具就等于重来,效率极低。
- 判断“出错”的标准乱:有人觉得“摔盘子(500状态码)才算错”,但“上错菜(返回数据和预期不符)”“慢上菜(响应超时)”却不算——之前的工具只盯着500状态码,漏了很多实际问题,而且报告格式各异,想对比两个工具的效果都得手动整理数据。
- 测试的“餐厅”太少:之前大家只在3-5家“小餐馆”(简单API)里测试,要么用在线API(可能突然限流、改规则),导致别人想复现实验结果根本不可能——就像我说“某家餐厅服务差”,但没说哪家、在哪,别人怎么验证?
这些问题导致REST API模糊测试“看起来热闹,实际难落地”:学术研究没法公平对比工具,工业界用工具得反复适配,整个领域进步缓慢。这篇论文就是要解决这些“无规则”的痛点。
创新点
这篇论文的亮点就像给混乱的“餐饮业”立了三个关键规则,每个都很实在:
- 首次实现“认证+故障”双标准化:之前要么只解决认证,要么只解决故障统计,这篇论文的WFC把两者结合,还给出可直接用的工具(JSON Schema、HTML报告),不是“纸上谈兵”。
- 最大规模可复现的API数据集:之前的数据集最多14个API,还没有完整的运行环境;WFD给了36个真实JVM API,每个都配Docker(一键启动)、覆盖率统计工具(JaCoCo),甚至自动化脚本,别人拿过去就能跑实验,不用自己搭环境。
- 最全面的工具实证研究:第一次用36个API、10次重复实验(共2160次)对比6个主流工具,还指出了之前研究的“猫腻”——比如有些论文故意选对自己工具友好的API(cherry-picking),这篇直接给出“不能这么选”的具体指导。
- 落地性极强:所有方案都开源,WFC能直接集成到现有工具,WFD能直接用于实验,不是纯理论——就像不仅定了餐饮业规则,还给了“统一菜单模板”“服务员培训手册”,拿来就能用。
研究方法和思路
论文的研究思路就像“发现问题→设计方案→验证方案→给出指导”,步骤特别清晰,尤其是创新部分的细节很到位:
第一步:调研痛点(摸清混乱根源)
- 分析了23个主流REST API模糊测试工具,发现只有6个支持动态认证,且每个配置方式都不同;
- 梳理了近5年的相关论文,发现70%的研究只用了少于10个API,且80%没有公开实验代码,复现率极低;
- 总结出“认证、故障、案例”三大核心痛点,确定解决方案的方向:标准化+可复现。
第二步:设计WFC(解决“规则乱”问题)
分两部分落地,每步都考虑实用性:
- 认证标准化:
- 用YAML/TOML写配置文件(不用写代码),比如定义“登录端点是/login,token从响应的/accessToken字段里拿,前缀加Bearer ”;
- 用JSON Schema验证配置文件(避免写错),还自动生成Java、Python解析代码,工具集成时直接用;
- 故障标准化:
- 整理12类常见故障(比如F100=500状态码、F101=返回数据不符合Schema),每个给唯一编码;
- 定义故障报告的JSON格式(必须包含工具名、故障编码、受影响的API端点等),还能生成HTML可视化报告(看覆盖率、故障分布更直观);
- 开源分发:把WFC放到GitHub、Maven(JVM工具能直接引入)、Zenodo(版本归档,避免后续改动)。
第三步:构建WFD(解决“案例少”问题)
- 筛选API:从开源社区选36个JVM生态的真实API(Java/Kotlin),覆盖政府(如德国疫情追踪API)、商业工具(如语言检查工具languagetool),确保有简单有复杂,还有15个需认证的;
- 搭实验环境:
- 每个API写Docker Compose文件(一键启动API和依赖的数据库,比如PostgreSQL、MongoDB,还带初始化数据);
- 集成JaCoCo(统计代码覆盖率)、mitmproxy(记录所有HTTP请求,算端点覆盖率);
- 写自动化脚本:Bash脚本实现“启动API→跑测试→收集数据→停API”全流程,还支持并行实验(改改端口就能同时跑多个API的测试)。
第四步:实证研究(验证方案有效)
- 选工具:挑6个有代表性的工具——工业界常用的(RESTler、Schemathesis,GitHub星数2000+)、学术前沿的(LLamaRestTest、EmRest)、标杆工具(EvoMaster,之前研究里表现最好);
- 定参数:每个工具测每个API跑1小时,重复10次(减少偶然误差),共36×6×10=2160次实验,记录3个指标:2xx端点覆盖率(能成功调用的端点比例)、500故障数、代码覆盖率;
- 分析结果:用统计学方法(Friedman测试)验证工具差异,还找失败原因(比如某工具不支持OpenAPI 3.x的路径前缀,导致在很多API上崩溃)。
主要成果和贡献
这部分用大白话讲就是:这篇论文给领域带来了“三个能用、一个明白”,价值很实在。
1. 核心成果(表格归纳)
类别 | 具体内容 |
---|---|
研究问题(RQ) | 1. 能否用WFC统一认证与故障报告?2. WFD能否支持大规模可复现实验?3. 6大工具在WFD上表现如何? |
对比实验设计 | 36个API×6个工具×10次重复=2160次实验,1小时/实验,3个核心指标 |
关键实验结论 | 1. EvoMaster最优:2xx覆盖率57.2%、代码覆盖率45.5%(是最差工具的3倍+);2. 工具差异显著(p<0.001);3. 40%工具因Schema兼容性崩溃 |
开源资源 | WFC GitHub:https://github.com/WebFuzzing/Commons;WFD GitHub:https://github.com/WebFuzzing/Dataset |
2. 实实在在的价值
- 对学术研究者:不用再自己找API、搭环境——拿WFD就能跑实验,用WFC就能统一数据格式,对比工具更公平,不用再“自说自话”;
- 对工业界工程师:不用为每个测试工具写认证代码——用WFC的YAML配置,换工具也不用改;故障报告能直接对比,知道哪个工具测得更全;
- 对整个领域:有了“统一语言”和“标准测试场”,大家能聚焦“怎么把测试做得更好”,而不是“怎么适配工具/复现实验”——就像餐饮业有了统一规则,大家比的是服务质量,不是比谁的规则更复杂。
关键问题
1. WFC到底怎么解决“认证配置乱”的问题?举个例子?
答:比如测试“博客API”(需要动态token),用WFC只需写一个YAML配置文件:
auth:type: dynamiclogin_endpoint: /api/loginlogin_method: POSTlogin_body: '{"username":"test","password":"123"}'token_extract:source: response_jsonpath: /accessToken # 从登录响应的accessToken字段拿tokenprefix: "Bearer " # token前缀加Bearer
不管是EvoMaster还是RESTler,只要支持WFC,导入这个文件就能自动处理认证——不用给每个工具写不同的代码,这就是“统一配置”的好处。
2. WFD比之前的API数据集好在哪?比如和EMB(14个API)比?
答:有三个核心优势:① 规模大:36个API(是EMB的2.6倍),代码量65万行,端点1487个,更贴近真实场景;② 可复现:每个API都有Docker,一键启动,不用自己装依赖、配数据库;③ 支持认证:15个需认证的API,EMB几乎没有,能测更真实的场景。
3. EvoMaster表现最好,核心原因是什么?对工程师选工具有用吗?
答:核心原因有两个:① 支持WFC的动态认证,能测15个需认证API(其他工具要么不支持,要么配置错);② 能处理“不完美的Schema”——真实API的Schema常缺字段描述,EvoMaster能自动兼容,其他工具会直接崩溃。对工程师有用:如果要测需认证的复杂API,优先选EvoMaster;如果是简单无认证API,RESTler、Schemathesis也能用。
4. 这篇论文的方案能直接用到实际工作中吗?比如我是后端测试工程师。
答:完全能!① 用WFC:给团队的测试工具统一配置认证和故障报告,比如用WFC的HTML报告看测试覆盖率,不用再手动整理Excel;② 用WFD:如果要验证新测试工具的效果,拿WFD里的API先测,看看工具在已知场景下的表现,再用到公司项目里,减少试错成本。
总结
这篇论文没有搞复杂的理论,而是聚焦REST API模糊测试的“真痛点”——认证乱、故障乱、实验难复现,给出了“真解决方案”:WFC(标准化工具)+ WFD(可复现数据集)。通过2160次大规模实验,不仅证实了方案的有效性,还指出了之前研究的“坑”(比如cherry-picking API),给出了实操指导。
它的价值不在于提出新的测试算法,而在于“统一规则”——就像给混乱的行业立了标准,让学术研究能公平对比,工业界能高效落地,最终推动整个REST API模糊测试领域从“各自为战”走向“协同进步”。