中文

DeepREST:利用深度强化学习进行REST API自动测试用例生成

软件工程 2024-08-19 v1

摘要

自动为REST API构建测试场景有助于交付更可靠和可信赖的面向Web的系统。然而,当前黑盒测试方法严重依赖API正式文档中可用的信息,即OpenAPI规范(OAS)。虽然有用,但OAS主要涵盖API的语法方面(如操作之间的生产者-消费者关系、输入值属性和自然语言中的附加约束),而缺乏对API业务逻辑的深层理解。缺失的语义包括操作之间的隐式排序(逻辑依赖)和隐式输入值约束。这些限制阻碍了黑盒测试工具自动生成真正有效测试用例的能力。本文介绍了DeepREST,一种用于自动测试REST API的新型黑盒方法。它利用深度强化学习来揭示隐式API约束,即API文档中隐藏的约束。好奇心驱动学习引导智能体探索API并学习测试操作的有效顺序。这有助于确定首先测试哪些操作以使API进入可测试状态并避免后续失败的API交互。同时,在成功API交互中获得的经验被用于驱动精确的输入数据生成(即使用哪些参数以及如何选择其值)。此外,DeepREST通过变异成功API交互在探索与利用之间交替,以提高测试覆盖率并收集进一步经验。我们的经验验证表明,所提出的方法在实现高测试覆盖率和故障检测方面非常有效,且优于最先进基线。

关键词

引用

@article{arxiv.2408.08594,
  title  = {DeepREST: Automated Test Case Generation for REST APIs Exploiting Deep Reinforcement Learning},
  author = {Davide Corradini and Zeno Montolli and Michele Pasqua and Mariano Ceccato},
  journal= {arXiv preprint arXiv:2408.08594},
  year   = {2024}
}