大厂测试人亲测:大模型自动生成测试用例,效率飙升50%!

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客文章浏览阅读3.4k次,点赞86次,收藏15次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……_软件测试刷题小程序​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502icon-default.png?t=N7T8https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502

今天我们一起学习讨论一个“老生常谈”但却值得不断去研究的话题,那就是“基于大模型如何生成测试用例,是否能真的提升测试效率”!据京东零售团队研究发现,基于Langchain生成测试用例,结果效率提升了50%!

我们今天就来从研究背景实现的过程思路实践效果以及大模型自动生成的优缺点方面来学习讨论,希望对你有所启发!

什么是Langchain

它是一个开源框架,用于构建基于大型语言模型(LLM)的应用程序。LLM 是基于大量数据预先训练的大型深度学习模型,可以生成对用户查询的响应,例如回答问题或根据基于文本的提示创建图像。

LangChain 提供各种工具和抽象,以提高模型生成的信息的定制性、准确性和相关性。例如,开发人员可以使用 LangChain 组件来构建新的提示链或自定义现有模板。LangChain 还包括一些组件,可让 LLM 无需重新训练即可访问新的数据集。

研究背景

在研究开源框架LangChain之前,公司最先普及的是JoyCoder,但是在把相关需求及设计文档信息拷贝到JoyCoder,让其生成测试用例时,却发现人工操作步骤较多(如:复制粘贴文档,编写提示词,拷贝结果,保存用例等)、响应时间久,而且当需求或设计文档内容较大时,提示词太长或超出 token 限制!

因此开展了基于LangChain的研究!

实现过程思路

整体流程图

技术解析

  • PDF内容解析:本次研究中选取的是PDF库中的PyMuPDF,主要是因为功能全面且处理速度快;

  • 文件切割处理:这块相比JoyCoder,将文件分为各个小文本,就很好的解决了模型响应时间久或超出token 限制;

  • Memory 的使用:这个是大多数大模型都会有的一个功能,就像我们平常在使用的ChatGPT、Kimi等聊天,不需要把每次上面的内容都重复再输入一遍,大模型会自动记忆我们上述的对话内容。

    本次我使用Langchain的ConversationBufferMemory与ConversationSummaryBufferMemory来实现,将需求文档和设计文档内容直接存入 Memory,可减少与大模型问答的次数(减少大模型网关调用次数),提高整体用例文件生成的速度。ConversationSummaryBufferMemory 主要是用在提取“摘要”信息的部分,它可以将将需求文档和设计文档内容进行归纳性总结后,再传给大模型。

  • 向量数据库: 利用公司已有的向量数据库[测试环境 Vearch],将文件存入。在创建数据表时,需要了解向量数据库的检索模型及其对应的参数,目前支持六种类型,IVFPQ,HNSW,GPU,IVFFLAT,BINARYIVF,FLAT(详细区别和参数可点此链接),目前我选择了较为基础的 IVFFLAT--基于量化的索引,后续如果数据量太大或者需要处理图数据时再优化。另外 Langchain 也有很方便的vearch存储和查询的方法可以使用。

实践效果

用例生成后是否真的能帮助我们节省用例设计的时间,是大家重点关注的,因此我随机在一个小型需求中进行了实验,此需求的 PRD 文档总字数 2000+,设计文档总字数 100+(因大部分是流程图),结果效率提升 50%。

优缺点

本次利用大模型自动生成用例的优缺点:

优势:

  • 全面快速的进行了用例的逻辑点划分,协助测试分析理解需求及设计;

  • 降低编写测试用例的时间,人工只需要进行内容确认和细节调整;

  • 用例内容更加全面丰富,在用例评审时,待补充的点变少了,且可以有效防止漏测;

  • 如测试人员仅负责一部分功能的测试,也可通过向量数据库搜索的形式,聚焦部分功能的生成。

劣势:

  • 暂时没实现对流程图的理解,当文本描述较少时,生成内容有偏差;

  • 对于有丰富经验的测试人员,自动生成用例的思路可能与自己习惯的思路不一致,需要自己再调整或适应。

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

### 使用大语言模型生成软件测试用例的最佳实践和方法 #### 方法概述 通过研究发现,大型语言模型(LLMs)可以被用于单元测试自动生成,并且这种方法已经在实际项目中得到了验证[^1]。具体来说,这些模型可以通过理解代码的功能需求以及输入输出关系来自动生成相应的测试用例。 #### 数据准备与训练 为了使大语言模型更好地适应特定领域的需求,在正式部署之前通常需要对其进行微调或者提示工程设计。这一步骤可能涉及收集大量已有的高质量源码及其对应的测试案例作为训练数据集的一部分[^2]。 #### 自动生成流程 当给定一段目标函数或模块时,系统会先解析该部分程序逻辑并提取必要的元信息;接着向预训练好的LLM发送请求说明任务意图——即希望获得什么样的测试场景描述列表;最后由接收端解释返回的结果并将它们转换成可执行的形式保存下来供后续运行验证之用[^3]。 #### 提升效果策略 除了单纯依赖于机器学习算法外,还可以考虑引入其他辅助机制共同作用以进一步增强整体表现力。例如对于增量式的变更文件(diff),我们可以让AI分析其中的变化点从而推潜在风险区域进而优先覆盖那些地方编写针对性更强的新条目[^4] 。另外一种思路则是构建起围绕着某个产品线的知识库网络结构图谱之后再利用这个框架指导整个生命周期内的质量保障活动开展情况跟踪记录工作等等 。 ```python from langchain import PromptTemplate, LLMChain from transformers import pipeline def generate_test_cases(code_snippet): prompt_template = """You are given a piece of code below. Your task is to create unit tests based on this snippet. {code} """ nlp_pipeline = pipeline('text-generation', model='your-pretrained-model') template = PromptTemplate(input_variables=["code"],template=prompt_template) llm_chain = LLMChain(prompt=template,llm=nlp_pipeline) response = llm_chain.run({"code": code_snippet}) return response ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值