Skip to content

Latest commit

 

History

History
20 lines (15 loc) · 2.12 KB

2312.00894.md

File metadata and controls

20 lines (15 loc) · 2.12 KB

背景

  • 背景
    当前REST API测试工具主要关注于API规范中的结构化数据,但通常忽略了规范中非结构化自然语言描述中的有价值信息,导致测试覆盖率不理想。现有的技术试图从这些人类可读描述中提取规则并查询知识库以得出有意义的输入值,但这些方法在提取规则类型和生成准确结果上有限制。

  • 已有的工作 现有技术如NLP2REST和ARTE虽然进行了尝试,但因方法上的限制或缺乏上下文理解,导致无法准确地提取规则和生成有效的输入值。

核心贡献

  • 提出了一个名为RESTGPT的新方法
    • 挑战1:提取规则和生成有效输入值的准确度和质量 RESTGPT使用大型语言模型(LLMs),特别是GPT-3.5 Turbo的能力和内置的上下文感知,来改进REST API测试。通过解析OpenAPI规茨、提取机器可解释规则和从自然语言描述中生成示例参数值,然后将这些规则和值增强到原始规格中,确保生成的输出既相关又精准。

    • 挑战2:在保证扩展性和灵活性的同时,实现与现有API规范的无缝集成 RESTGPT在规格解析阶段提取API规范的机器可读组件,并在构建阶段将提取的规则添加到机器可读部分,以此来增强和丰富API规范,支持更加健壮和有信息依据的测试。

实现与部署

在初步结果中,与NLP2REST(无校验模块)相比,RESTGPT将精确度从50%提升至97%。即使与装备了校验模块的NLP2REST相比,RESTGPT的精确度仍从79%提升至97%。此外,RESTGPT成功为分析的服务及其操作生成了73%语法和语义上有效的输入参数,这比ARTE(只为17%的参数生成有效输入)有显著提高。这些发现表明了RESTGPT的有效性,突显了利用LLMs改进REST API测试的潜力。

总结

RESTGPT通过利用LLMs,特别是GPT-3.5 Turbo的高效准确性和少量示例学习的精准性,解决了现有方法在提取自然语言描述中规则和生成有效值时的限制,显著提升了REST API测试的质量和准确度。