前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >为什么说只发送接口说明给LLM要求生成单接口用例是在“耍流氓”?

为什么说只发送接口说明给LLM要求生成单接口用例是在“耍流氓”?

作者头像
Antony
发布于 2025-02-03 14:02:05
发布于 2025-02-03 14:02:05
1090
举报

目前在LLM赋能测试的场景中见到比较多的是基于LLM来生成[单]接口的自动化测试用例,也就是针对某个特定接口实现一次完整的接口入参和预期结果的生成。这也是所有后续更高阶和复杂的自动化测试用例的基础步骤。

而常见的方案是将某个接口的OpenAPI spec发送给LLM,要求生成接口一次调用的入参和预期结果。

实际项目中,真有这么轻松吗?入参有效吗,用例能执行通过率怎么样?

以下是笔者梳理的真实项目中可能遇到的问题

序号

类别

问题

说明

1

入参

OpenAPI某个接口的schema中的某个入参字段的声明类型与实际使用中的类型不一致

典型如 某个入参字段定义为string,其实是对象甚至是List 对象。如果LLM只是按照schema的声明来生成入参,这些用例顶多只能作为覆盖同一个异常等价类的测试用例。

2

入参

OpenAPI的spec中缺失了约束Validator

Spring提供的validator机制可以对接口入参进行一些有效性校验,例如字段长度、数字大小、日期格式等等。类似的,这些内容的缺失也会造成生成用例的有效性大大降低。

3

入参

有效业务枚举值的缺失

与前一问题类似,LLM能理解String类型的类型边界,如 null, ‘ ’ 等表示空的情况并将其作为测试用例入参。但是如果该String类型字段在业务上用“1”表示 男“2” 表示女其余均为无效值。此类数据也不包括在OpenAPI的schema当中,LLM也无从知晓。

4

入参

入参之间的约束/勾稽关系

简单如省和市两个字段,很显然有一个某个市必须和其归属的省对应。此类的内容往往出现在接口的需求规格中,而不是OpenAPI schema中。

前面围绕着入参提出了4个问题,接着从出参/预期结果和用例执行的角度再来4个问题。

5

出参

某个接口出参中包含了泛型

典型如在接口返回时统一做了封装,使用类似ResponseResult等封装类型,其中有一个 Object data 或者T data的字段才是原始的接口方法返回类型,具体类型是运行时决定的。同上类似,只按照schema来生成预期结果的话,也会造成预期结果和实际结果不一致的问题。

6

出参

ERROR CODE

一个接口会有哪些error code, 尤其是采用类似上一案例中的ResponseResult类的场景下,通常发生业务层面的问题时,在HTTP层统一返回status code 200, 而是通过这个类的error_code/error_msg字段来表示真正的业务异常。因此,从出参的角度考虑接口测试的完备性时,对于这类error code的全覆盖也是一个值得考虑的实践。问题在于,这个ERROR CODE List在哪里?LLM显然是不知道的,因为OpenAPI schema里面没有。

7

出参

(断言)通常只能保证生成入参形式上有效,预期结果都是幻觉

由于只给了OpenAPI schema, 并没有提供对应接口的实现方法的代码,LLM无从得知某个入参组合之下,被测应用的真实处理结果,因此预期结果都是靠猜测的。当然现实项目中,仅仅给实现方法也是不够的,因为还有很多外部依赖。给了方法来做的话,其实就是笔者常说的把单接口自动化测试当成大号的单元测试来做的思路了。

8

执行

入参与被测环境的基础数据不匹配

譬如用户、产品、订单号、日期等数据如果通过LLM生成,即使格式上与被测应用完全一致了,也可能因为此类相关的数据在被测环境的数据库中不存在或者不一致,导致用例执行失败。

如果这些问题不解决,是不是效果就像下面这个图?

如果我们进一步将任务修改为让LLM来串联多个接口形成场景测试用例,任务的难度又又又提升到了一个新的量级。

那么,即使是针对单接口测试用例的生成,还有哪些笔者没有提到的坑呢?或者上述提到的问题,该如何解决呢?欢迎大家留言交流。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试那些事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Win系统安装部署流程与工具
描述:Windows Deployment Service即windows部署服务,我们可以通过windows server自带的部署服务通过网络将操作系统部署到每台计算机上,并且可以通过WDS来管理多版本映像以及无人参与安装脚本,和网刻非常相似不过这个更简单操作更方便
全栈工程师修炼指南
2020/10/26
2.9K0
Win系统安装部署流程与工具
Linux运维工程师面试-部分题库(答案版)
1.常见的Linux发行版本都有什么?你最擅长哪一个?它的官网网站是什么?说明你擅长哪一块?
子润先生
2021/06/17
4.1K0
如何使用Powershell操作FTP进行数据文件自动上传备份
[TOC] 0x00 前言简述 描述: 在运维过程中会将服务器上数据文件备份在共享磁盘或者FTP服务器中,此处由于作者环境是在Windows系统上,且在业务上需要同步文件到FTP服务器中,遂有了此文,
全栈工程师修炼指南
2023/03/21
3.4K0
如何使用Powershell操作FTP进行数据文件自动上传备份
运维必学 | 基础脚本示例-从零开始学Windows批处理(Batch)编程系列教程
此篇文章为作者在学习Batch批处理编程中,所编写或者收集整理的批处理示例,能极大的便于初学者作为入门学习的参照学习,从而快速入门到应用在工作实践中,这也是作者发布此篇文章的初心,希望针对大家有帮助,整理不易请点赞、在看与投币吧!
全栈工程师修炼指南
2023/10/31
2.6K0
运维必学 | 基础脚本示例-从零开始学Windows批处理(Batch)编程系列教程
Multipath多路径管理基础介绍与安装配置使用
工作原理: 当因为主机HBA卡、线缆、交换机或者存储设备的RAID控制器故障等原因造成一条物理路径失效时,服务器可以将通过此物理路径的I/O转移到其他正常的物理路径上面,应用程序不会觉察到这种改变,从而提高系统的可用性。
全栈工程师修炼指南
2022/09/29
15.1K0
Multipath多路径管理基础介绍与安装配置使用
IT运维面试问题总结-基础服务、磁盘管理、虚拟平台和系统管理
Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
杰哥的IT之旅
2020/10/23
1.2K0
7.Redis数据库容灾备份企业实战
前置知识学习补充 Redis数据库基础入门介绍与安装 - https://blog.weiyigeek.top/2019/4-17-49.html
全栈工程师修炼指南
2022/09/28
2.1K0
7.Redis数据库容灾备份企业实战
电脑技巧:Windows服务器挂载磁盘方法介绍
针对服务器来说,挂在磁盘可以说是服务器运维人员必备的技能,今天小编给大家介绍Windows服务器如何正确挂载磁盘,希望对大家能有所帮助!
小明互联网技术分享社区
2022/02/16
4.2K0
电脑技巧:Windows服务器挂载磁盘方法介绍
Windows中IIS内FTP服务器高级配置教程
  提到FTP服务器,可能大家都会想到Serv-U、vs-FTP等软件,其实微软内置在IIS里的FTP服务已经够用,不信请往下看。
会长君
2023/04/26
8.6K0
FTP远程文件传输服务安装与配置
描述: FTP只通过TCP连接,没有用于FTP的UDP组件.FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口)。通常21端口是命令端口,20端口是数据端口。当混入主动(Active)/被动模式(Passive)的概念时,数据端口就有可能不是20了。
全栈工程师修炼指南
2022/09/29
2.1K0
FTP远程文件传输服务安装与配置
应用服务连接命令一览表
描述:连接到程服务器的远程桌面这是windows最常用的命令,通过rdp协议进行远程主机的管理;
全栈工程师修炼指南
2020/10/26
7110
应用服务连接命令一览表
COBBLER批量安装Windows系统
需求:采用Cobbler批量分发安装Windows10(官方原版未封装过)并默认进入审核模式;
全栈工程师修炼指南
2020/10/26
5K1
COBBLER批量安装Windows系统
windows bat批处理基础命令学习教程「建议收藏」
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,分享一下给大家。点击跳转到教程。
全栈程序员站长
2022/09/23
19.5K0
windows server2008 R2搭建ftp服务器「建议收藏」
我们在工作中经常使用到ftp服务器。包括我们的server-u服务器,但是我们的server-u是收费软件,如果公司对软件版权问题比较注重的话,不建议使用server-u,特别是如果公司有安装了server2008的话,我们就可以使用server2008子代的IIS工具来搭建我们的ftp服务器。今天我们就来一步一步搭建我们的ftp服务器。
全栈程序员站长
2022/09/14
5.4K0
在AIX下误操作删除LV后如何最大程度挽救数据?
今天北亚小编为大家分享一篇《在AIX下误操作删除LV后如何最大程度挽救数据?》首先大家要知道到底是LV?PV相当于物理磁盘(对于存储,是存储映射过来的卷,对于操作系统而言,等同于物理硬盘),若干个PV组成一个VG,意味着可以将容量不同的存储空间合起来统一分配。为了实现这个目的,AIX把同一个VG的所有PV按相同大小的存储颗粒进行空间编排,这个存储颗粒就是PP。而分配空间时,以若干个PP(可能是不同PV上的),做为使用集合,这个集合就是LV。
北亚数据安全与救援
2021/04/13
1.5K0
数据备份的新选择:存储资源盘活系统
存储系统作为IT系统的底层基础架构,存储技术进一步发展和推广对于整个信息产业具有重大意义。在数字化转型过程中,存储系统作为底层基础架构,其改造和实施过程需被重点关注。
存储小白
2021/12/21
6890
DELL存储SCv2000/2020基础配置与使用
描述: 最近业务需要需要将原本装有VMware vSphere的机器直接安装Ubuntu 20.04 TLS,并通过SAS线缆从DELL Storage SCv 2020链接我们的UBUNTU 物理主机上进行SCSI磁盘的挂载共享使用,以下是一些简单的说明;
全栈工程师修炼指南
2020/10/26
8.4K0
DELL存储SCv2000/2020基础配置与使用
网络服务安全-IIS安全机制
IIS是一个World Wide Web server。Gopher server和FTP server全部包容在里面。 IIS意味着你能发布网页,并且有ASP(Active Server Pages)、JAVA、VBscript产生页面,有着一些扩展功能。IIS支持一些有趣的东西,像有编辑环境的界面(FRONTPAGE)、有全文检索功能的(INDEX SERVER)、有多媒体功能的(NET SHOW) 其次,IIS是随Windows NT Server 4.0一起提供的文件和应用程序服务器,是在Windows NT Server上建立Internet服务器的基本组件。它与Windows NT Server完全集成,允许使用Windows NT Server内置的安全性以及NTFS文件系统建立强大灵活的Internet/Intranet站点。IIS(Internet Information Server,互联网信息服务)是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事
用户7881870
2021/05/18
1.1K0
磁盘查看分区操作命令详细
描述:主要讲解Windows下对于磁盘分区的操作,以及磁盘分区标卷信息的查看等等;
全栈工程师修炼指南
2020/10/26
4.5K0
磁盘查看分区操作命令详细
Windows Server 2008 R2中安装SQL Server 2012集群图文详解
超详细讲解在Windows Server 2008 R2中安装SQL Server 2012集群过程步骤,图文并茂。
星哥玩云
2022/08/16
2.6K0
Windows Server 2008 R2中安装SQL Server 2012集群图文详解
推荐阅读
相关推荐
Win系统安装部署流程与工具
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档