ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

测试人转型AI测试开发:大模型与Agent落地实践指南

测试人转型AI测试开发:大模型与Agent落地实践指南 测试圈里最近两年有个很明显的现象招聘网站上测试开发岗位的JD里开始频繁出现熟悉大模型应用有AI测试经验优先了解Agent框架这类要求。与此同时不少做了三五年功能测试的朋友开始焦虑——手工点页面的活越来越少自动化脚本写来写去也就那些套路往上走的路似乎被堵住了。但另一批人已经悄悄完成了转身他们用大模型辅助生成测试用例、用Agent自动维护UI脚本、用AI做接口断言和日志分析薪资和话语权都上了一个台阶。这篇内容就是围绕测试人如何转型AI测试开发这个核心命题展开的我会把转型路径、需要补的技术栈、大模型在测试中的真实落地方式、Agent项目的实操思路以及我踩过的坑全部摊开来讲。适合有测试基础但想往AI方向靠的工程师也适合刚入行想直接走AI测试路线的新人。1. 测试人转型AI测试开发到底转的是什么1.1 先搞清楚AI测试和测试AI是两件事很多人一听到AI测试开发就懵以为是要去训练模型、调参、搞算法。其实这个方向里有两个完全不同的子领域混在一起想就会觉得门槛高得离谱。第一个是用AI来测试也就是把大模型、Agent这些技术当成工具去提升测试效率。比如用大模型读需求文档自动生成测试用例用Agent读取用例后自动生成Playwright脚本用AI分析失败日志定位问题。这个方向对测试人非常友好核心能力还是测试思维AI只是放大器。第二个是测试AI系统本身也就是给大模型应用、Agent产品做质量保障。比如测试一个对话机器人的回答准确性、测试RAG系统的召回质量、测试Agent执行任务的成功率。这个方向需要理解大模型的能力边界、幻觉问题、提示词注入风险等。转型AI测试开发绝大多数测试人走的是第一条路然后逐步向第二条路延伸。你不需要会训练模型但你需要会调用模型、会设计提示词、会把模型能力编排进测试流程。这个认知差非常关键我见过太多人因为误以为要搞算法而直接放弃。1.2 为什么是现在而不是再观望一年观望的成本比想象中高。原因有三个层面。岗位需求端现在招聘方要的不是会写Selenium的人而是能设计测试体系并借助AI提效的人。同样一个高级测试岗会AI工具的人能覆盖的测试场景是传统方式的3到5倍企业自然愿意给溢价。技术成熟度端大模型的API调用成本已经降到很低本地部署也有成熟方案。Agent框架比如LangChain、AutoGPT这类生态越来越完善做一个读用例生成UI脚本的Agent现在可能两三天就能跑通原型放在两年前是不可想象的。竞争窗口端现在真正既懂测试又懂AI落地的人还不多。等这个技能变成JD里的标配你就从稀缺人才变成了及格线选手。转型这件事早半年和晚半年结果差别很大。1.3 转型需要补的能力清单我把测试人转型AI测试开发需要补的能力拆成四块按优先级排能力模块具体内容优先级预计投入大模型基础应用API调用、提示词工程、结构化输出高2-3周Agent开发LangChain基础、工具调用、流程编排高3-4周AI测试场景落地用例生成、脚本生成、日志分析高持续实践AI系统测试方法幻觉评估、RAG测试、提示词注入中2-3周注意这个排序先会用再会测。很多教程一上来就讲怎么评估大模型结果学员连API都没调过完全无法理解评估指标的意义。正确的路径是先自己动手把大模型用起来踩过坑之后你自然就知道该测什么了。2. 大模型在测试工作流里的真实落点2.1 用例生成从需求文档到结构化用例这是最容易上手、见效最快的场景。传统做法是测试人员读需求文档手工写用例一个中等复杂度的模块可能要写一两天。用大模型辅助流程可以变成这样第一步把需求文档整理成清晰的输入。不要直接把几十页的PRD丢给模型效果很差。正确做法是按功能模块切分每个模块单独喂给模型并附上明确的输出格式要求。第二步设计提示词。我常用的模板结构是角色设定 输入内容 输出格式 约束条件。举个例子prompt 你是一名资深测试工程师。请根据以下需求描述生成测试用例。 需求描述 {requirement} 输出要求 1. 以JSON数组格式输出每个用例包含字段case_id, title, precondition, steps, expected_result, priority 2. 覆盖正常流程、边界值、异常场景 3. priority取值为P0/P1/P2 4. 步骤要具体可执行不要写验证功能正常这种模糊描述 只输出JSON不要有其他内容。 第三步拿到输出后做校验。这里有个坑大模型生成的用例经常有重复、遗漏或者逻辑不通的地方。我的做法是让模型自己先做一轮去重和补充然后人工过一遍P0用例。实测下来AI生成的用例能覆盖70%左右的常规场景剩下30%的复杂业务逻辑和隐性需求还是得靠人。提示需求文档里如果有表格、流程图最好转成文字描述再喂给模型直接贴图片或复杂表格模型理解会打折扣。2.2 接口测试断言让AI帮你写校验逻辑接口测试里最烦的就是写断言。一个返回体嵌套好几层字段几十个手工写断言又慢又容易漏。用大模型可以这样操作把接口的响应示例和业务规则一起给它让它生成断言代码。比如你有一个订单查询接口返回体里有订单状态、金额、商品列表、优惠信息等。你可以把响应JSON和业务规则比如订单状态为已支付时支付时间不能为空一起给模型让它生成Python断言代码。实测下来对于字段级的校验AI生成的准确率很高对于跨字段的业务规则校验需要你把规则描述得非常精确。这里有个经验让模型生成断言时要求它同时输出这条断言在什么情况下会失败的注释。这样你review的时候一眼就能看出逻辑对不对比干看代码快得多。2.3 失败日志分析从报错堆栈到根因定位自动化测试跑完之后最耗时的环节是分析失败原因。一堆报错日志有的是环境问题有的是数据问题有的是真的bug。用大模型做日志分析可以大幅缩短这个环节。具体做法是把失败用例的报错堆栈、相关日志片段、以及该用例的步骤描述一起喂给模型让它输出失败原因分类和初步定位。我一般会要求模型按这个格式输出失败类型环境/数据/代码/用例本身可能原因具体描述建议排查方向具体步骤置信度高/中/低这个用法在回归测试阶段特别有用。一次回归跑下来几百条失败人工一条条看要半天AI先过一遍把明显是环境问题的过滤掉你只需要看真正可疑的那几十条。2.4 测试数据构造批量生成符合规则的假数据构造测试数据是个体力活。比如你要测一个用户注册功能需要各种边界值手机号格式、密码强度、昵称长度、邮箱格式等等。用大模型批量生成比手写faker规则灵活得多。你可以这样描述需求生成20组用户注册测试数据包含正常数据、边界数据、异常数据。手机号要符合中国大陆格式密码要包含弱密码、强密码、超长密码昵称要包含空、纯空格、超长、特殊字符等情况。以JSON格式输出。模型生成后你只需要做少量调整就能直接用。这个场景的投入产出比极高基本上半小时能省掉半天的活。3. 用LangChain搭一个读用例生成UI自动化脚本的Agent3.1 为什么选这个场景作为Agent入门项目前面讲的都是单次调用大模型属于问答式用法。而Agent的核心区别在于它能自主决定调用什么工具、按什么顺序执行、遇到问题怎么调整。对于测试人来说读测试用例自动生成UI自动化脚本是最好的入门Agent项目原因有三第一输入输出明确。输入是结构化的测试用例输出是可执行的Playwright脚本中间过程清晰。第二有真实的工具调用需求。Agent需要读取用例文件、可能需要查询页面元素定位、需要生成代码文件、可能需要执行脚本验证这些都是天然的工具调用场景。第三价值直接可见。写UI自动化脚本是测试开发日常最耗时的工作之一一个能自动生成脚本的Agent省下来的时间是可以量化的。3.2 整体架构设计这个Agent的架构可以拆成四层输入层读取测试用例文件支持Excel、JSON、YAML等格式。用例里需要包含步骤描述和预期结果。理解层用大模型解析用例提取出操作步骤、目标元素、断言点。这一步的关键是让模型输出结构化的中间表示而不是直接生成代码。生成层根据中间表示结合页面元素定位信息生成Playwright脚本。这里需要给模型提供页面元素的定位方式否则它只能瞎猜选择器。验证层生成脚本后可选地执行一次把执行结果反馈给模型让它自我修正。用LangChain来实现的话核心是定义一个Agent给它配备几个工具读文件工具、写文件工具、执行脚本工具、查询元素定位工具。然后设计好系统提示词告诉它整个工作流程。3.3 关键实现细节与踩坑记录坑一用例格式不统一导致解析失败。我一开始直接让模型读Excel结果不同人写的用例格式差异巨大模型经常解析错。后来改成先用pandas把Excel转成标准JSON结构再喂给模型稳定性大幅提升。坑二元素定位信息缺失。模型生成的脚本里选择器经常是编的比如page.click(#submit-btn)但实际页面上根本没有这个id。解决办法是提前用工具抓取页面元素信息作为上下文提供给模型。可以用Playwright的page.locator()配合元素扫描脚本把页面上的可交互元素及其属性导出成JSON一起喂给模型。坑三生成的脚本语法错误。大模型写代码偶尔会有语法问题尤其是Playwright的异步写法。我的做法是在Agent里加一个语法检查工具用ast.parse()先做静态检查不通过就让模型重新生成。坑四断言逻辑太弱。模型倾向于生成expect(page).to_have_title(...)这种弱断言。解决办法是在提示词里明确要求每个用例至少包含一个针对业务数据的断言不能只断言页面标题或URL。下面是一个简化的核心代码结构from langchain.agents import AgentExecutor, create_openai_tools_agent from langchain.tools import tool tool def read_test_cases(file_path: str) - str: 读取测试用例文件返回JSON格式的用例列表 # 实现读取逻辑 pass tool def get_page_elements(url: str) - str: 获取指定页面的可交互元素及其定位信息 # 用Playwright扫描页面元素 pass tool def write_script(content: str, output_path: str) - str: 将生成的脚本写入文件 pass tool def validate_script(file_path: str) - str: 检查脚本语法是否正确 pass tools [read_test_cases, get_page_elements, write_script, validate_script] agent create_openai_tools_agent(llm, tools, prompt) executor AgentExecutor(agentagent, toolstools, verboseTrue)这个项目跑通之后你会发现Agent的价值不在于它一次能生成多完美的脚本而在于它能把读用例-查元素-写脚本-验语法这个链条自动化你只需要做最后的review和微调。3.4 从Demo到可用还需要补什么Demo跑通和真正能用之间还有几道坎。坎一元素定位的稳定性。实际项目里页面元素经常变今天能用的选择器明天就失效了。解决方案是让Agent优先生成基于文本内容或角色属性的定位方式比如page.get_by_role(button, name提交)而不是依赖脆弱的CSS选择器。坎二用例的多样性。简单用例生成效果好复杂用例涉及多页面跳转、文件上传、弹窗处理就容易出错。我的做法是把复杂用例拆成多个子步骤让Agent分步生成最后再组装。坎三与现有框架的集成。生成的脚本要能直接放进你现有的测试框架里跑这就要求Agent了解你的框架约定比如目录结构、配置文件、fixture命名等。把这些约定写进系统提示词里效果会好很多。4. AI测试开发必须知道的几个硬核概念4.1 大模型的能力边界它到底擅长什么、不擅长什么转型AI测试开发你得对大模型的能力有个清醒的认识否则容易走两个极端要么过度信任要么完全不用。大模型擅长的事情文本理解和生成、格式转换、代码生成、模式识别、多轮对话。这些能力对应到测试场景就是用例生成、脚本生成、日志分析、数据构造。大模型不擅长的事情精确计算、实时信息获取、长链条逻辑推理、对私有系统的准确理解。所以你不能指望它帮你算出复杂的业务规则也不能指望它知道你没告诉它的页面结构。理解这个边界之后你就知道该怎么设计工作流了把大模型放在它擅长的环节把精确计算和系统交互交给传统代码。这就是所谓的AI规则混合方案比纯AI方案稳定得多。4.2 提示词工程在测试场景的实战技巧提示词工程不是什么玄学核心就几条原则但在测试场景里有具体的用法。原则一给角色给上下文。不要只说生成测试用例要说你是一名有5年经验的电商测试工程师现在需要为优惠券功能生成测试用例。角色设定越具体输出质量越高。原则二给格式给示例。大模型对输出格式的遵循程度取决于你描述得有多精确。最好的方式是给一个示例输出让它照着格式来。这叫few-shot实测比纯文字描述格式有效得多。原则三分步骤不要一步到位。复杂任务拆成多步每步的输出作为下一步的输入。比如生成脚本这件事先让模型提取操作步骤再让它生成代码比直接让它读用例写脚本效果好。原则四让模型自我检查。生成完之后加一句请检查你的输出是否有遗漏或错误如有请修正后重新输出。这一句话能让输出质量提升一个档次。4.3 结构化输出让AI的输出能被程序消费测试工作流里AI的输出往往要交给程序继续处理所以结构化输出非常关键。最常用的是JSON格式。但大模型有个毛病它有时候会在JSON外面包一层解释文字或者JSON格式不合法。解决办法有两个一是用支持结构化输出的API参数很多模型都提供了JSON mode二是在提示词里严格约束只输出JSON不要任何其他内容。更稳妥的做法是用Pydantic定义输出schema然后用LangChain的结构化输出解析器。这样即使模型输出有偏差解析器也能帮你纠正或报错。from pydantic import BaseModel from typing import List class TestCase(BaseModel): case_id: str title: str steps: List[str] expected_result: str priority: str class TestCaseList(BaseModel): cases: List[TestCase]定义好schema之后用llm.with_structured_output(TestCaseList)模型就会按这个结构输出省去了大量解析和纠错的工作。4.4 本地部署与API调用的选型考量测试数据往往涉及业务敏感信息很多公司不允许把数据传到外部API。这时候就需要考虑本地部署大模型。本地部署的核心考量是显存、模型大小、推理速度三者的平衡。7B参数的模型量化后大概需要6-8G显存普通消费级显卡就能跑。13B的模型需要12-16G显存。再大的模型个人设备就比较吃力了。对于测试场景我的建议是如果只是做用例生成、脚本生成这类任务7B到13B的模型完全够用。如果是做复杂的日志分析或代码生成可以考虑用更大模型的API或者用本地小模型加云端大模型的混合方案。本地部署的工具链现在很成熟Ollama、LM Studio这类工具可以让你几行命令就跑起来一个模型。测试环境里用Ollama部署一个7B模型通过OpenAI兼容的接口调用和调云端API的代码几乎一样切换成本很低。5. 转型路上最容易踩的五个坑5.1 坑一把AI当万能药什么场景都想用我见过不少刚转型的人恨不得把所有测试工作都交给AI。结果发现有些场景AI还不如传统方法。比如精确的数值计算、复杂的业务规则校验、需要实时系统状态的判断这些用传统代码更靠谱。正确的思路是先判断这个任务是不是语言类任务。如果是文本理解、生成、转换AI适合如果是精确计算、状态判断、系统交互传统代码适合。混合使用才是最优解。5.2 坑二提示词写得太随意然后怪模型不行帮我写个测试用例和你是一名资深测试工程师请为以下登录功能生成测试用例覆盖正常登录、密码错误、账号锁定、验证码过期四种场景以JSON格式输出每个用例包含用例编号、标题、前置条件、步骤、预期结果——这两个提示词的效果差距是巨大的。很多人试了一两次效果不好就放弃了其实问题出在提示词上。提示词工程是AI测试开发的基本功值得花时间打磨。5.3 坑三忽略AI输出的验证环节大模型会一本正经地胡说八道这在测试场景里是致命的。生成的用例可能逻辑不通生成的脚本可能根本跑不起来生成的断言可能完全错误。所以任何AI输出都必须经过验证。用例要人工review脚本要实际执行断言要对照业务规则检查。把AI当成一个效率很高的初级助手而不是一个可以完全信任的专家。5.4 坑四只学工具不学原理换个场景就不会了工具更新换代很快今天学LangChain明天可能就有新框架。但底层原理是相对稳定的大模型怎么工作、提示词为什么有效、Agent的决策机制是什么、RAG的检索原理是什么。把原理搞懂了换任何工具你都能快速上手。只学工具用法换个场景就抓瞎。这也是为什么我在前面花了不少篇幅讲能力边界和提示词原则。5.5 坑五闭门造车不参与真实项目AI测试开发是个实践性极强的方向光看教程不动手永远学不会。最好的学习方式是找一个真实的测试痛点用AI方案去解决它哪怕只是一个小场景。比如你们团队每次回归测试都要手工整理失败原因那你就做一个AI日志分析的小工具。做完之后你会发现真实项目里的问题远比教程里复杂而解决这些问题的过程才是真正让你成长的地方。6. 从测试到AI测试开发的进阶路线图6.1 第一阶段把大模型用起来2-3周这个阶段的目标是熟悉大模型的基本用法。具体任务包括注册一个大模型API用Python调通对话接口练习写提示词完成用例生成、数据构造等简单任务了解结构化输出的用法。这个阶段不需要学LangChain不需要学Agent就是把API调用和提示词练熟。每天花一小时两三周就能达到熟练水平。6.2 第二阶段把AI嵌入测试流程3-4周这个阶段的目标是把AI能力接入你日常的测试工作。具体任务包括写一个用例生成脚本接入你们的用例管理流程写一个日志分析脚本接入你们的CI流程尝试用AI辅助写接口测试断言。这个阶段的关键是真实落地。不要停留在demo层面要真正用起来哪怕一开始效果不完美。用起来之后你才会发现真正的问题在哪里。6.3 第三阶段开发测试Agent4-6周这个阶段开始接触Agent开发。从最简单的单工具Agent开始逐步增加工具和复杂度。前面讲的读用例生成UI脚本Agent就是一个很好的练手项目。这个阶段需要学LangChain或类似的框架理解Agent的决策机制、工具调用、记忆管理等概念。不要贪多把一个Agent项目做深做透比做十个半成品强。6.4 第四阶段建立AI测试方法论持续这个阶段是从会用工具到能设计体系的跨越。你需要思考AI在测试流程的哪些环节能产生最大价值如何评估AI输出的质量如何保证AI测试的可靠性如何把AI测试能力沉淀成团队可复用的资产这个阶段没有明确的终点需要在实践中不断积累和总结。到了这个阶段你就不再是一个会用AI的测试而是一个AI测试开发工程师了。7. 关于AI测试开发的一些个人体会带了几个从测试转型过来的朋友之后我发现一个规律转型成功的人往往不是技术基础最好的而是动手最快、最愿意折腾的。有个朋友原来只做功能测试Python都写不利索但他花了两周时间硬是把一个用例生成工具做出来了虽然代码很粗糙但从此打开了新世界的大门。另一个技术底子很好的朋友一直在纠结要不要先系统学完机器学习再开始结果半年过去了还在看理论。AI测试开发这个方向实践远远领先于理论。很多用法都是先有人试出来了然后才总结成方法论。所以别等准备好了再开始先动手做一个小工具遇到问题再补知识这个路径效率最高。另外一点体会是不要追求完美。AI生成的用例有70%可用那就先用这70%剩下的30%人工补。AI生成的脚本能跑通简单场景那就先覆盖简单场景复杂的慢慢来。追求一步到位的人往往一步都迈不出去。最后说个实际的现在很多团队都在探索AI测试但真正落地的还不多。这意味着机会窗口还在。你不需要成为AI专家只需要比身边的测试同事早半步掌握这些技能就能在团队里建立起差异化优势。这个优势在接下来的两三年里会越来越值钱。
返回列表