文/中国邮政储蓄银行软件研发中心焦烨辛新张丰超赵薇
随着大模型技术的快速发展,自动化测试领域迎来了新的机遇,大模型的应用为提高测试效率、降低测试成本提供了新的解决方案。为降低自动化测试脚本编写成本,金牛座自动化测试系统以大模型技术为基础,结合知识库、录制、报文解析、图像识别等技术,针对不同的场景提供了脚本智能生成功能。
大模型技术概述及选型
1.大模型技术概述大模型是指具有大量参数和复杂结构的机器学习模型,能够处理海量数据、完成各种复杂的任务。大模型通过训练海量数据来学习复杂的模式和特征,从而具备更强大的泛化能力,可以对未见过的数据做出准确的预测,在自然语言处理、计算机视觉、语音识别等多个领域都有广泛的应用。在自然语言处理领域,大语言模型通过大量的数据和参数进行训练,从而具备了对自然语言进行理解、生成和处理的能力。
2.模型选型
在自动化测试脚本智能生成实践过程中,邮储银行尝试了多个模型,包括不同量级的chatGLM模型、盘古模型和千问模型等,制作评估规则进行评估,并根据评估结果和资源情况进行最终选型。
根据试点模型的评估结果,同一系列的模型参数量级越大,效果越好,但消耗的资源也越多,生成效率也更低,且超过一定量级后,效果提升不明显,可根据实际的资源情况选择合适的参数量级;此外,不同系列的模型,需要针对性的调整提示词,且生成效果存在差异,建议根据所选模型调整提示词。
自动化测试脚本智能生成
金牛座自动化测试系统支持接口自动化测试脚本和UI自动化测试脚本的编写及执行,其中接口自动化测试脚本又分为单接口脚本和多接口组合场景脚本两种。为降低自动化测试脚本编写成本,金牛座自动化测试系统分别针对这三种脚本进行了脚本智能生成的探索。
1.单接口脚本批量生成
单接口测试脚本主要用于单接口测试,其特点是编写简单,主要需要配置请求参数及断言,但脚本量级较大,需要根据接口各字段取值进行正例及反例的覆盖。金牛座自动化测试系统针对单接口测试场景,提供了单接口脚本批量生成功能,有效解决了单接口测试脚本编写量级较大的问题。
首先,系统提供了接口管理功能,可以通过swagger导入、json导入、接口文档导入等方式导入接口定义,并进行管理。然后系统根据接口定义生成请求报文示例,测试人员输入测试要点,主要包括要覆盖的字段取值,字段是否必填等,系统将这些信息组装成prompt,利用大模型生成多个测试用例。
测试人员查看生成的测试用例,可以进行修改调整。确认后,选取多个测试用例,分别根据请求报文示例、测试用例描述、测试点利用大模型生成对应的请求报文及断言内容,系统根据大模型返回的结果生成对应的单接口脚本。
2.多接口组合场景脚本智能生成
(1)录制
录制功能主要用于获取整个业务流程的接口请求及对应的参数。系统通过代理端口,获取用户操作过程中涉及的所有接口请求及其对应的请求参数和响应报文。
(2)智能分析
(3)辅助编写
对于一些复杂的测试场景,测试人员可能需要编写beanshell脚本等对参数数据等进行处理,对此,系统提供脚本辅助编写功能,可以根据用户输入的场景描述,利用大模型理解需求,自动生成所需的beanshell脚本代码、SQL语句或正则表达式等。此外,为使生成的脚本更加符合银行业务逻辑,邮储银行使用外挂知识库的方式,将大模型与银行特色知识库、特色业务逻辑相结合,提高了脚本生成的准确性。
3.UI测试脚本智能生成
对于UI自动化测试,现在的通用做法是通过录制生成脚本或者三层架构编写脚本,免不了人工一步步执行或者编写的成本投入。借助大模型技术,可以根据简单的用例描述,直接自动生成测试脚本。首先利用大模型和图像识别技术识别被测页面上的元素,然后将分析出来的元素以及测试用例描述传递给大模型,通过大模型分析并预测下一步操作,循环多次生成一系列动作列表,如果模型预测无需下一步动作,则循环结束。
以转账汇款为例,测试需求为“向张三账号6666转账100元”。第一步分析提取首页上的页面元素,第二步结合测试需求预测下一步动作是“点击转账汇款”,第三步执行动作跳转到新的页面,重复循环上面的一二三步,直至点击“确定”并预测没有后续操作为止。目前此方案还在探索实践中。
未来规划
基于大模型技术的自动化测试脚本智能生成功能在试点过程中取得了良好的应用效果,降低了脚本编写成本,提升了测试效率,后续将进一步扩大试点范围,收集应用数据,并持续进行效果优化,利用模型微调训练、检索增强等技术,不断提高生成结果的可信度和可靠性。此外邮储银行还将在自动化测试领域的其他环节持续进行大模型的应用探索及落地实践,推动自动化测试效能提升,助力业务快速发展。