返回
Test Oracle Generation for REST APIs
DOI:10.1145/3726524.png)
摘要
En 中文
近年来,针对REST API的测试用例生成工具的数量和复杂性显著增加。这些工具在自动化输入生成方面表现出色,但其测试断言器(test oracles)存在局限性,只能检测崩溃、回归以及API规范或设计最佳实践的违规。本文介绍了AGORA+,一种通过检测不变量(output properties that should always hold)为REST API生成测试断言器的方法。AGORA+通过分析API请求及其对应响应来学习API的预期行为。我们增强了用于动态检测潜在不变量的Daikon工具,添加了新的不变量类型,并创建了一个名为Beet的前端。Beet将任何OpenAPI规范和一组API请求与响应转换为Daikon的输入。AGORA+能够检测106种不同类型的REST API不变量。我们还开发了PostmanAssertify,它将AGORA+识别的不变量转换为可执行的JavaScript断言。在20个工业API的25个操作上,AGORA+达到了80%的精确度。它还识别出测试API输出中系统注入的48%的错误。AGORA+在流行的API中发现了32个错误,包括Amadeus、Deutschebahn、GitHub、Marvel、NYTimesBooks和YouTube,并促成了修复和文档更新。
Keyword:
REST APIs
test oracle
invariant detection
automated testing
期刊
A
IF:
6.2
论文数:
1.2K
被引数:
3.4K

