中文

利用生产环境 GraphQL 查询来检测模式缺陷

软件工程 2022-08-17 v2

摘要

GraphQL 是一种设计 Web API 的新范式。尽管日益流行,但用于验证 GraphQL API 实现的技术寥寥无几。我们提出一种基于 GraphQL 查询的新测试方法,这些查询是在用户于生产环境中与应用程序交互时被记录的。我们的核心动机是:生产查询捕获了应用程序的真实用法,并且已知会触发开发者可能未测试的行为。对于每条记录的查询,都会生成一个测试,用以断言 GraphQL 响应相对于模式的有效性。我们在一款称为 AutoGraphQL 的工具中实现了该方法,并在两个领域和技术栈各异的真实案例研究中评估:一个是用 Python 实现的开源电子商务应用 Saleor,另一个是用 PHP 实现的工业案例研究金融网站 Frontapp。AutoGraphQL 成功为两个应用生成了测试用例。所生成的测试覆盖了 Saleor 模式的 26.9%(包括原测试套件未覆盖的 API 部分),以及 Frontapp 模式的 48.7%,借助生产查询检测出了 8 个模式缺陷。

关键词

引用

@article{arxiv.2112.08267,
  title  = {Harvesting Production GraphQL Queries to Detect Schema Faults},
  author = {Louise Zetterlund and Deepika Tiwari and Martin Monperrus and Benoit Baudry},
  journal= {arXiv preprint arXiv:2112.08267},
  year   = {2022}
}