௵ ᕈy Ȥ 基于LLM语义理解的Web接口测试用例生成方法研究P.10 基于频谱的自动化测试生成执行方法 P.16T0算法交易系统双维度测试框架构建与实践 P.29 Securities & Futures Industry Testing Technology and Quality Management证券期货业测试技术与质量管理 2025年12月 总第165期【测试专刊】 主办: 证券期货业信息技术测试中心(大连) 地址: 大连市沙河口区会展路129号期货大厦电话: 0411-8480 6897传真: 0411-8480 6566 基于LLM语义理解的Web接口测试用例生成方法研究 本文提出基于大语言模型语义理解能力的Web接口测试用例自动生成方法,解决了测试输入多样与低人工成本难以兼顾的问题。该方法借助LLM解析接口文档生成取值字典,进而生成多场景测试用例。通过Python实现工具并验证26个接口,生成276条有效用例,编写效率提升约50%,有效降低了测试成本。 大连商品交易所官方公众号 热点文章 P16 基于频谱的自动化测试生成执行方法 改版声明 证券期货业《测试技术与质量管理》季刊自2015年12月发刊以来,受到证券、基金、期货公司和研究机构等广大读者的欢迎。为更好的传递先进的行业测试技术、分享宝贵的质量管理经验,证券期货业信息技术测试中心(大连)决定自本期开始与大连商品交易所《衍界》合刊,并于每季度(3月、6月、9月、12月)定期刊发,特此声明。 P29 T0算法交易系统双维度测试框架构建与实践 2024年12月31日 内部资料妥善保存 资讯聚焦Information Focus 01行业动态汇编06质量技术前沿08国际热点追踪 专家视角Expert Perspective 10基于LLM语义理解的Web接口测试用例生成方法研究 /ᄯߙᄃ௪ךڂပຫ٤ഓᆐඁc֫චcཷ 探索应用Explore Applications 16基于频谱的自动化测试生成执行方法 /Ӗൎ׆൜Љೋޏ೬ပຫ٤ഓঞᡭ23基于日志分析的业务覆盖率评估方法研究与应用 /ಃฃ܁ၗᄃ௪ပຫ٤ഓฆܟޤcह။࢚cฆၠՋc४४cਨ߰ߠঊcڲ29T0算法交易系统双维度测试框架构建与实践 /ໍາϭᄃ௪ךڂပຫ٤ഓܑॆ40创新压力测试技术 铸就系统韧性之盾 /ڜᄼ߬ݪ྾ൎࢳޏပຫ٤ഓုcেဇ45创新驱动下的证券App自动化测试实践 /ᄯߙᄃ௪ךڂပຫ٤ഓ༗ϛ51数字化业务运营治理的“长效密码”:如何从微光走向远路? /ᄂᄼ྾ಙޏ೬ပຫ٤ഓাฦcฆ௶56证券公司交易系统生产流量回放测试设计与实践 /֟ڜᄃ௪ךڂပຫ٤ഓहोעcդఫ᧢cಷලcᄻࢳ62基于大模型的运维告警数据智能处理与质量管理研究 /ఫ༲ܑcࠍc๑עვᄝပຫ٤ഓךڂ۪ᄃ௪ڳᄯ70防火墙策略管理及数据治理 /ڳᄃ௪ךڂပຫ٤ഓውᡭඟ 我们We 75以质量管控与技术创新护航月均价业务落地75强化科技监管支撑,助力压测工作落地75飞泰公司助力行业程序化交易合规测试稳步推进 专家视角 基于LLM语义理解的Web接口测试用例生成方法研究 张子涛、樊添、杨楠 / 中信建投证券股份有限公司 本文研究了一种基于大语言模型(Large Language Model,LLM)语义理解能力的Web接口测试用例自动生成方法。针对传统接口测试用例设计耗时耗力、依赖人工编写测试数据等问题,提出利用LLM解析接口文档中信息得到取值字典,通过程序生成覆盖正常值、边界值、异常类型及缺失参数等多种测试场景的接口用例。研究通过Python实现了自动化工具,并通过26个接口进行了验证,共生成276条有效测试用例。实验结果表明,该方法显著提升了测试用例编写效率,相比人工编写节省约50%的时间,有效降低了测试成本。尽管当前覆盖的测试点尚不全面且需人工补充断言,但该研究为接口测试自动化提供了高效、低成本的新思路,未来可通过优化提示词工程和引入响应断言生成进一步提升自动化程度。 很少。因此大多数方法都采用数据字典,预定义输入值集合[6]。但需要为每个输入参数创建和维护数据字典。也有人提出了利用历史数据通过蚁群算法从中找到最有效的测试数据从而生成用例的方法[7],利用鲸鱼优化算法生成测试用例[8],但这必须由人工编写足量测试数据。综上,这些方法存在两个问题:1.测试输入不够多样;2.人工成本较高。 一、引言 迄今为止,软件测试领域中,测试理论的深化与测试用例的高效生成策略持续成为研究的焦点与亟待攻克的技术挑战。这一领域不仅吸引着广泛的学术关注,也是实践界不断探索与创新的重点方向[1]。相较于UI测试,接口测试在软件开发生命周期中能够更早地识别出潜在的缺陷,具有成本效益高、投资回报显著以及更强的业务逻辑覆盖能力的优势[2]。根据统计数据,在软件测试的开销中,有很大一部分花费在了设计测试用例上,这包括测试数据的设计与期望结果的设计上[3]。然而,手动编写接口测试用例不仅工作量繁重,还容易引发错误,极大地制约了测试的效率与准确性,这就需要有效的自动生成接口测试用例的方法来提升接口测试效率。 为了解决以上问题,本文提出了一种基于大语言模型(Large Language Model,LLM)的语义理解能力,解析Excel格式接口文档(也支持Swagger文档,可将其转为Excel)中接口参数信息,从而得到对应参数的取值字典,最终生成接口测试用例的方法。该方法以接口文档中的全参数请求示例为基准,依照单参数组合覆盖准则跟据LLM生成的数据字典使得每个参数的每个值在请求中都至少出现一次,结合接口URL、请求方式等其他信息自动构建接口请求。这样不仅节约了人工阅读接口文档准备测试数据以及编写用例的成本,同时也 对接口参数的有效取值进行了覆盖,具有低成本、高有效率的优势。 业界已经有很多国内外的学者专家对接口的测试用例自动化生成方法进行了研究。常见的是通过为接口输入参 数 赋值,测试 用例自动从OA S(O pen A PISpecification)格式的接口规范中导出。对于测试输入的生成,一些作者采用随机值[4]或默认值[5],但这些值 EXPERT PERSPECTIVE 二、方法设计 本节首先对接口测试的部分测试点进行分析,从中筛选出比较常见的测试点,然后根据这些测试点设计如何从接口文档中提取编写用例所需的信息,接着再考虑如何将这些信息转化为程序可理解的格式,最终实现测试用例的自动生成。如图2-1所示为从接口文档输入到用例输出的整体流程图,接下来各小节做更详尽的描述。 生成方法可以以此类推。 2.接口信息提取 1.测试点分析 在接口测试中,接口文档就是开发团队与测试团队沟通接口信息的桥梁。笔者所在测试团队使用Excel格式的接口文档与开发团队对齐接口的各项信息,包括接口名称、接口地址、请求方式、参数类型、参数名、参数说明、请求示例等,如图2-2所示,为接口文档中一个接口信息示例。 接口测试需要测试接口功能的完整性、接口的稳定性和可靠性、接口的安全性、接口的可维护性[9]。而文本主要研究的是如何生成测试接口功能的用例,即验证接口在各种输入、边界条件、异常情况下的行为和响应。这些用例关注数据的交换和传递,而参数是数据交换的重要载体,包括路径参数、查询参数、请求头参数、请求体参数,测试人员需要通过修改和调整测试脚本中的参数设计用例来完成接口测试[10]。其中根据接口请求参数限制设计用例时常见的测试点如表2-1所示。 根据文档信息,可以人工编写覆盖必填限制、取值范围限制、类型限制的测试用例。要实现用例自动生成,就需要把这些信息提取出来。由于文档为Excel格式,可利用Python的Pandas库将其转换为pandas Data-F r a m e 结 构,文 档 中 每 个 单 元 格 的 内 容 将 对 应DataFrame中的字符串字段。其中有些内容可以直接作为部分用例的成分字段,比如要测试请求头参数缺失时响应是否正常,那就可以直接复制接口地址、请求方式以及除请求头外的所有参数名和示例取值构造一条用例。但如果想要测试参数out为slow且其他参数正常 本文主要对覆盖必填限制、取值范围限制、类型限制的测试用例的自动生成方法进行研究与实践,具体来说就是测试正常输入(有效值、枚举值、上下边界值、非必填参数缺失)和异常输入(异常类型、特殊字符、超出边界的值、必填参数缺失),其他测试点的自动 时的响应,或者想要测试参数hc取值超过1000时的响应,则需解析说明字段中的语义信息(如“退出方式fast快速退出slow缓慢退出”和“使用人数1~1000”),以便代码识别具体约束条件。 3.参数取值解析 如上一节所说,要生成覆盖更多测试点的用例,就要解析“退出方式fast快速 退出slow缓慢退出”以及“使用人数1~1000”,如果可以解析为[fast,slow]以及[1,1000],那就可以很方便取到fast、slow、1和1000。而大语言模型在语义理解方面具有显著优势。 图2-4:范围型取值情形的提示词 本文使用LLM进行参数取值解析。而通过Prompt工程与大模型进行对话可以较为简便地得到期望的输出。本文设计出了两段提示词,分别用于处理参数说明中的枚举值情形(例如“退出方式fast快速退出slow缓慢 退 出 ”)和 范 围 型 取 值 情 形(例 如“ 使 用 人 数1~1000”),如图2-3为处理枚举值情形的提示词。 而处 理范围型 取值时只需稍作更 改。如图2-4所示。 EXPERT PERSPECTIVE 过上一节的接口信息提取便可直接获得取值。此时再结合当前参数的类型信息和测试点便可以构造一个参数取值字典。如下表所示,为根据不同取值范围限制、类型限制构造的取值字典示例,包括了正常取值(枚举值、上下边界值)和异常取值(异常类型、特殊字符、超出边界的值)。 在提示词设计过程中,出现的问题基本可以分为两种:识别错误(如把一些非枚举值内容识别为枚举值)及识别不全(如漏掉枚举值)。因为文档中在说明参数取值范围或枚举值时描述方式多样,LLM识别结果并不能做到100%准确。本文通过两种容错处理机制提升用例的可用性:一是用提示词要求LLM回答“是否说明枚举值”或“是否说明取值范围且没有把所有取值枚举”,在回答为“是”时,代码读取具体范围或枚举值放进取值字典,为“否”时则不进行读取;二是将识别结果记录在最终输出的用例集合中,方便人工查漏补缺。这样在发生识别错误时通过增加的一步判断即可降低生成无效用例的数量,通过结果记录达到快速查缺补漏的目的。经统计,在识别26个接口时从原先有3个接口生成了无效用例减少到只有1个接口生成无效用例。 5.测试用例生成 有了参数的取值字典,便可进行测试用例的生成。要生成测试参数为异常类型、特殊字符、枚举值、范围边界值、超出边界的值、有效值的用例时,首先根据接口参数的类型和说明等信息确定涉及的用例测试点,然后依据测试点到参数取值字典中获取对应取值得到完整的请求参数,接着拼接测试点、参数及其取值得到用例名称,最后将请求参数与请求地址、请求方式进行组合得到测试用例,逻辑如下图2-5所示。 本文还对比了不同模型的解析效果,对26个接口进行解析时,星火大模型没有识别出其中一个接口参数的取值范围,通义千问大模型少识别一个接口参数的枚举值,而私有化部署的模型则有3个接口没有完全识别正确,在出现上述两种问题的同时,还出现了将枚举值场景错误识别为取值范围场景的情况。因数据安全需要,后续研究和开发工作还是以公司私有化部署的模型为基础。各模型识别准确率如下表所示。 而当要生成测试参数缺失情况的用例时,则不传该参数,其他参数取合法的值用类似的逻辑生成测试用例即可。将这些用例按照统一的格式输出便可以得到供接口测试自动化执行的测试用例集合,本文将用例集合设计为Excel格式,用例生成效果将在下