面向GraphQL API的白盒与黑盒模糊测试
软件工程
2022-09-14 v1
摘要
图查询语言(GraphQL)是一种用于Web服务中API操作的强大语言。它最近作为解决RESTful API局限性的替代方案被引入。本文介绍了一种GraphQL API自动化测试的解决方案。我们提出了一个从模式提取到测试用例生成的完整自动化API测试框架。此外,我们考虑两种测试:白盒与黑盒测试。白盒测试在GraphQL API源代码可用时执行。我们的方法基于演化搜索。测试用例被演化以智能探索解空间,同时最大化代码覆盖率和故障发现准则。黑盒测试不需要访问GraphQL API的源代码。因此它具有更普遍的适用性,尽管性能较差。在此背景下,我们使用随机搜索生成GraphQL数据。所提框架被实现并集成到开源EvoMaster工具中。启用白盒启发式(即白盒模式)后,在7个开源GraphQL API上的实验显示,与基线随机搜索相比演化方法在统计上显著改进。此外,在31个在线GraphQL API上的实验揭示了黑盒模式检测真实故障的能力。
引用
@article{arxiv.2209.05833,
title = {White-Box and Black-Box Fuzzing for GraphQL APIs},
author = {Asma Belhadi and Man Zhang and Andrea Arcuri},
journal= {arXiv preprint arXiv:2209.05833},
year = {2022}
}