如何让大模型生成你想要的测试用例?

描述

       应用大模型生成测试用例,常见的知识库,测试大模型,微调,RAG等技术门槛都不低,甚至很难,因此对于应用者而言,最快的方式就是应用好提示词,调教属于个人风格的测试用例智能生成模块,让智能模板像人一样,有角色定位,有业务背景,有个人偏好,有目标达成标准,有格式规范要求等,让智能模板充当你的个人翻译官,充分发挥每一句设定提示词的作用和价值,生成属于你想要风格的测试用例。

 

        本文以Data4Test智能生成测试用例的功能为背景,探讨让大模型生成有个人或公司风格和要求的测试用例。

目录:1、测试用例的组成

2、用例提示词设计(prompt设计)

3、背景提示词设计(prompt设计)

4、通过Data4Test平台生成测试用例的智能模板设计

5、适合赋值处理的要素

6、用例执行时处理的要素

7、在线体验8、Github项目地址

9、本地快速试用

 

1、先蛐蛐一下测试用例的组成测试用例常见的要素:列列都有20项了

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

(1) 用例编号: 按模块分类编号,以便数据统计和分析

(2) 用例名称: 功能聚焦,每一个用例有测试重点

(3) 用例类型: 功能/流程/界面/异常/易用性/回归/性能/安全/兼容性/场景/压力/长时间/环境/数据/文案/样式/交互/边界等,可自行定义

(4) 优先级: P1/P2/P3/P4或高/中/低, 可自行定义

(5) 预置条件: 用例执行的前置条件,可选

(6) 测试范围: 范围说明和澄清

(7) 测试步骤: 按顺序编写测试步骤

(8) 预期结果: 按测试步骤的结果设计预期结果

(9) 测试过程: 测试过程记录, 一般为截图或文字补充说明

(10) 是否自动化: 是/否

(11) 功能开发者: 记录开发人员,可追溯历史,并进行代码维护

(12) 用例设计者: 记录用例设计人员,可追溯历史,并进行用例维护

(13) 用例执行者: 记录用例执行人员,可追溯执行过程,可对执行过程回溯

(14) 测试时间: 执行时间记录

(15) 测试结果: 通过/部分通过/失败/未测试/已废弃

(16) 用例模块: 设置用例归属的模块,以便数据统计和分析

(17) 引入版本: 设置用例引用的版本信息

(18) 关联场景: 可关联自动化数据/场景,执行后测试结果回传

(19) 关联产品: 关联执行环境或用例归属产品(20) 备注: 问题澄清,问题单关联,变更原因等

     想让大模型帮忙干活,就要先分析,哪些要素适合让大模型生成,哪些要素适合直接赋值减少token的消耗,哪些要素是用例执行时才会有的,因此,可以先先对测试用例要素进行分类:1、适合大模型生成的要素有: (1) ~ (8), (10), (16), (18)2、适合赋值处理的要素有:(11) ~ (13), (17), (19)3、用例执行处理的要素有:(9), (14), (15), (20)
     对用例要素分类完成后,就可以针对适合大模型生成的部分进行针对性的提示词设计,而其他部分则可直接进行剪枝处理。
2、用例提示词设计(prompt设计)    获取到了适合大模型生成的部分,就可以逐一设计各要素的提示词,给大模型越明确的要求信息,生成的结果数将更符合要求,能更多的减少后续的人工介入。通过完善和完整的提示词,清晰明确的告诉大模型,你想要什么样的测试用例。1、用例编号: 由模块名, 用例类型,编号组成,如: module_casetype_001;     此处的提示词主要保证生成的用例编号符合管理的要求或符合个人编写习惯的风格,保证生成的用例编号是继承了以往风格的2、用例名称:由模块名,用例类型,测试点组成,如: 模块名_功能_测试点    此处的提示词主要保证生成的用例名称符合管理的要求或符合个人编写习惯的风格,保证生成的用例名称是继承了以往风格的3、用例类型:功能, 异常,边界,安全,性能,流程等    此处的提示词主要保证生成用例类型的丰富和全面,同时按需生成需要的测试用例类型,避免生成的用例类型非所需或生成的用例类型偏少4、优先级:低、中,高    此处的提示词主要保证生成的用例优先级等级合适,无需人工判断优先级5、预置条件: 用例的依赖条件    此处的提示词主要保证生成的用例前置条件设置,无需人工判断补充6、测试范围: 用例的执行范围        此处的提示词主要保证生成用例的适用范围,一个用例可以多场景使用7、测试步骤:进行测试的步骤拆解,为达测试目的,可以拆解为多个步骤展开测试  8、以此类推,其他项按要求定义提示词,让大模型按要求生成
3、背景提示词设计(prompt设计)     设计好了最重要部分用例要素的提示词, 为了给大模型更多的信息,接着可以对用例设计人员的工作背景信息和行业背景信息等进行定义,告诉大模型你是一个什么样的角色,你的职责是什么,你要完成什么工作,完成哪个业务方向的工作等1、工作背景:你是一个拥有X年的测试工程师(资源测试工程师/测试开发工程师/测试专家等)等2、行业背景:你现在从事XX系统的测试工作,属于XX行业等3、角色背景:完成测试用例的设计工作等4、完成工作:生成XXX格式的测试用例,输出格式参考: XXX
4、通过Data4Test平台生成测试用例的智能模板设计智能模板内容:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

(1)角色背景   你是一个拥有X年测试经验的XX工程师,现在从事XX系统的测试工作,需要根据需求描述信息,设计指定格式的测试用例(2)测试用例要求1、用例包含: 用例编号,用例名称,用例类型,优先级, 所属模块, 预置条件,测试范围,测试步骤,预期结果,是否支持自动化;2、用例类型: 功能,异常,场景,数据,边界等3、用例编号: 由模块、类型,编号组成,如:module_function_0014、用例名称: 由模块名、用例类型、测试点组成,如: 模块名_功能_测试点5、优先级: 高、中、低6、测试步骤要求:一个测试步骤对应一个预期结果,如果是流程,场景等的用例,可包含多个步骤和多个结果(3)需求描述{需求描述占位符}(4)输出要求   基于以上背景,开始设计测试用例, 用例输出格式参考: [{"用例编号": "XXX","用例名称": "XXX","用例类型": "XXX","优先级": "XXX","所属模块": "XXX", "预置条件":"XXX","测试范围": "XXX","测试步骤":"1.XXX;2.XXX;以此类推","预期结果":"1:XXX;2.XXX;以此类推","是否支持自动化": "是或否"}]

多轮会话设置:
第一轮:

  •  

帮忙再补充一些功能类型的测试用例

第二轮:
 

  •  

还有补充的吗?

第三轮:
 

  •  

帮忙再增加一些性能类型的测试用例

第N轮:

  •  

按需设置提示词


5、适合赋值处理的要素     可结合个人所用的测试用例平台或工具,把适合直接赋值项的信息一键补全。即LLM的剪枝概念。通过Data4Test平台,在配置生成用例的任务时,实时选择关联产品,输入引入版本,用例设计者为生成用例的操作者,无感生成,快速完成测试用例周边信息的管理。
6、用例执行时处理的要素    可结合个人所用的测试用例平台或工具,把用例执行时的一些信息补全,如此完成测试用例从生成到执行到回归到归档的全生成周期的管理。通过Data4Test平台,测试时间,测试结果等信息均可维护,助力使用者全面管理测试用例。7、在线体验1、访问地址:http://X.X.X.X:9088/ (待新环境上线)2、默认用户和密码:admin  /  admin (建议初次登录后创建个人用户进行体验)   (说明:不可当生产环境使用哦)
8、Github项目地址 https://github.com/tongdun/data4test ( 如果本项目对你有所帮助或启发,记得star 和 fork 本项目支持我们哟~ 
9、本地快速试用

(1) 下载docker-compose.yml

    (下文有附docker-commpose.yml文件的内容,可复制使用)

(2) 切换到下载目录

(3) 启动服务:docker-compose up -d

(4) 默认访问:http://127.0.0.1:9088

(5) 默认用户:admin / admin

    (说明:试用智能化功能,需有大模型基建,和环境配置)


 

docker-compose.yml

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

version: "3.3"services:  db:    image: josingcjx/db-data4test:5.0    container_name: db-data4test    command: --default-authentication-plugin=mysql_native_password    ports:      - "33066:3306"    volumes:      - mysql:/data    networks:      - data4test    environment:      - MYSQL_ROOT_PASSWORD:password      - MYSQL_USER:admin      - MYSQL_PASSWORD:data4test  data4test:    image: josingcjx/data4test:5.0    container_name: data4test    restart: always    depends_on:      - db    ports:      - "9088:9088"    networks:      - data4test    environment:      - MYSQL_PORT:3306      - MYSQL_HOST:db      - MYSQL_PASSWORD:password    volumes:      - /var/run/docker.sock:/var/run/docker.sock      - data4test:/datanetworks:  data4test: {}volumes:  mysql: {}  data4test: {}

声明:


本号对所有原创、转载文章的陈述与观点均保持中立,推送文章仅供读者学习和交流。文章、图片等版权归原作者享有,如有侵权,联系删除。

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分