☰
AI测试实践手记:从AI辅助测试到测试AI系统的两条路线
2026/10/23 19:54:52 网站建设 项目流程

上周我接到一个内部工具优化的需求,说是测试组每次发版前要手动跑两百多条冒烟用例,光准备数据就要一下午。我当时的第一反应是:这活儿要是能让AI先把用例写出来、把数据造好,人只负责审,那效率能翻一倍。后来真正动手做了几轮,才发现事情没有想象中那么简单——AI不是不干活,而是“你以为它在帮你干活”的时候,它可能在认认真真地胡说八道。

这篇内容就是从那几轮实践里长出来的。我从测试开发视角出发,把AI落地到质量保障上最常见的两条路线拆开讲清楚:一条是把AI当副驾驶,辅助测试人员写用例、查代码、分析缺陷;另一条是把AI本身当被测对象,用系统化的方法去验证大模型应用、Agent、RAG系统的质量。两条路线看起来各走一边,但做着做着你会发现,它们最后都指向同一个答案——质量保障这件事,要从“人肉堆量”转向“人机协同的量尺设计”。

不管你是刚接触AI的测试工程师,还是正在给AI应用搭质量体系的测开,这篇手记里都有可以直接拿去用的思路和踩坑教训。

1. 两条路线,说的到底是哪两条

先说结论,避免后面绕晕。所谓两条路线,本质上对应的是AI在测试领域中两种完全不同的位置关系。

1.1 路线A:把AI当工具,让AI辅助测试

这条路线最直观。我们仍然是测试的主体,AI只是被用来加速原本就存在的测试活动。比如用AI生成测试用例、自动补全测试代码、智能分析失败用例、识别代码变更的风险点、自动生成测试数据。

它的核心心智模型是“副驾驶”。你在开车,AI在旁边看路、提示、递东西,但方向盘还在你手里。对绝大多数传统测试团队来说,这是最稳妥的切入点,因为不需要从零搭建AI基础设施,只需要找到合适的AI工具,再配合一套提示词规范,就能开始跑。

我见过很多团队从这条路线入手,是因为它见效快。通常一到两周就能在某个模块上跑通,比如把接口测试用例的编写时间压缩三分之一。但它的天花板也比较明显,AI的能力边界取决于测试人员的提问质量,如果你自己都说不清被测系统的业务规则,AI给出的用例自然是泛泛而谈。

1.2 路线B:把AI当被测对象,测试AI系统本身

这条路线是新范式里的“新”字所在。当业务方拿着一个接入大模型的智能客服、一个能自动操作浏览器的Agent、一个基于RAG的知识库问答系统过来,说“测一下”的时候,传统测试方法整套失灵了。

为什么失灵?因为输入空间不再是有限的参数组合,而是无限的自然语言;预期结果不再是确定的返回值,而是语义上合理、格式上合规、逻辑上自洽的一段文本。你没法写出几千条穷举用例,因为用户会怎么问,你根本猜不完。

所以路线B要做的是另一套质量保障体系:评测集怎么设计、模型输出怎么判对错、幻觉怎么量化、Agent的工具调用序列怎么校验、线上badcase怎么回流。它的核心心智模型是“驯兽师”。你无法完全预测猛兽的每一步行动,但你可以通过笼子结构、训练规则和应急预案,确保它在可控范围内表演。

1.3 两条路线的对比:问题空间、技能树、失败模式

把这两条路线摆在一起看,更容易理解为什么标题说“一个答案”。我用一个表格来对比它们在底层逻辑上的差别:

对比维度路线A:AI辅助测试路线B:测试AI系统
问题空间有限的输入参数和业务规则无限的自然语言输入
核心能力提示词编写、测试设计、代码能力评测集构建、指标设计、模型行为分析
判断标准用例是否有价值、是否能发现缺陷模型输出是否正确、是否可接受
交付物更快的测试执行、更高的覆盖率质量报告、评测数据集、监控告警
失败模式AI生成无用用例、误导测试决策模型幻觉、评测集失真、线上行为漂移
上手难度低,两三周见效高,需要系统性设计

这里有个很关键的认知:两条路线的失败模式完全不同。路线A翻车最多是浪费了时间,生成了一堆没用的用例;路线B翻车是严重后果的——如果一个智能客服在线上对用户输出了一段看似专业实则错误的回答,那不只是测试事故,可能是业务事故。

但你把它们放到更大的图景里看,会发现它们最终都在做同一件事:让质量保障从“确定性系统的验证”走向“不确定性系统的风险治理”。这就是我说的“一个答案”——不管AI是工具还是被测对象,测开的角色都在从“执行者”变成“质量架构师”。

2. 路线A的落地:AI辅助测试到底怎么用起来

既然是实战手记,这部分就多讲操作细节。路线A的落地,我按实际推进的顺序拆成三个环节:用例生成、代码审查与缺陷定位、工具选型。

2.1 AI生成测试用例的实操方法

先别急着把业务需求整段丢给AI,那样生成的用例十有八九不能直接用。我自己跑下来的一套流程是这样的:先给AI设定角色和边界,再提供精简后的业务规则,最后指定输出格式。

举个例子,测试一个登录模块,我不会这样写提示词:

“帮我生成登录功能的测试用例。”

这种问法太宽了。AI会给出套路化的用例:正确的用户名密码登录成功、错误的用户名密码登录失败、密码为空……这些用例不能说错,但价值很低。你真正需要的是业务层面的异常场景。

我实际使用的提示词结构是这样:

你是资深测试工程师,请针对以下登录模块生成测试用例。 业务规则: 1. 用户名长度6-20位,支持字母数字下划线 2. 密码必须包含大写字母、小写字母和数字,长度8-16位 3. 连续输错5次密码后,账号锁定30分钟 4. 锁定期间即使密码正确也不允许登录 5. 登录接口有图形验证码,验证码有效期2分钟 6. 同一账号允许在最多3台设备上同时登录,超过后最早登录设备被踢出 请按以下格式输出: - 用例编号 - 前置条件 - 操作步骤 - 预期结果 - 优先级(高/中/低) - 覆盖的业务规则编号 重点关注边界值和异常组合场景,不要输出常规正确路径用例。

加上约束条件后,AI输出的用例质量明显提升。它会主动考虑用户名19位、20位、21位的边界,会想到“连续输错5次后,第6次输入正确密码是否被锁定”这种交叉场景,还会区分验证码过期和验证码错误这两种不同的失败原因。这些靠人肉想,也能想出来,但AI的好处是快,几秒钟就能给出一版草稿,测试人员只需要做筛选和修正。

这里有三个实操中总结出来的要点:

第一,喂给AI的规则必须经过提炼。不要直接把几十页的需求文档丢进去,大模型处理超长上下文时,注意力会被无关内容稀释。我习惯先人工把关键业务规则抽成清单,再让AI基于清单生成用例。

第二,用历史缺陷反哺提示词。AI生成用例容易陷入“正常陷阱”,只关注功能说明里的内容,不知道过去在哪里出过事。如果把近半年的线上缺陷描述加进提示词,AI会明显更“懂”业务。我试过在一个订单模块上,把12个历史高频缺陷类型加进去后,AI生成的用例直接覆盖了其中9个,这个效率是人肉写用例很难比的。

第三,输出格式必须强制约束。AI自由发挥的格式非常不稳定,有时候给表格,有时候给列表。如果你后续要把用例导入测试管理平台,最好在提示词里就固定好分隔符和字段名,甚至可以让它直接输出JSON,写个小脚本自动解析入库。

2.2 AI辅助代码审查与缺陷定位

用例生成是最容易看到效果的地方,但AI辅助代码审查才是真正节省时间的环节。以前代码审查靠人肉看diff,一个MR几百行改动,逐行看下来非常费精力,而且容易漏掉跨文件的间接影响。

我的做法是把MR的diff内容直接发给AI,并附带代码库的整体结构说明,让AI做三个层面的分析:

第一层是代码规范问题,比如空指针风险、资源未关闭、魔法数字未定义常量,这些是AI最擅长的,准确率很高。第二层是业务逻辑遗漏,比如新加的接口参数是否做了非空校验、分页查询是否考虑到了超限场景、状态流转是否遗漏了某个分支。第三层是测试建议,AI会根据改动内容推荐需要补充的单元测试和集成测试用例。

这里要给个忠告:AI审查结果的定位是辅助,不是结论。AI经常会给出“我觉得这里可能有并发问题”之类模棱两可的提示,但它不会告诉你这个并发问题在什么条件下才能触发。我碰到过一次AI在代码审查中提示了一个线程安全问题,我和开发仔细看下来发现,那个方法被调用的入口实际上有全局锁保护,根本不会并发执行。所以AI的建议不要直接变成缺陷单,需要人工确认后才有价值。

缺陷定位是另一个高频场景。接口测试失败时,传统做法是看日志、看数据库、复现、定位。AI可以在几步之间帮上忙:把失败请求的参数、响应体、服务端关键日志片段丢给AI,让它给出可能性排序。实际操作中,AI对“响应超时”、“数据库连接池耗尽”、“下游服务返回504”这类常见原因的判断基本靠谱,能省掉一半的查日志时间。

2.3 工具选型与成本控制的几点建议

路线A的工具选型,市面上选择很多:商用大模型API、开源可私有化部署的模型、集成在IDE里的AI插件。选择标准不一定是“效果最强的”,而是“最适合你团队的”。

我简单给个对比参考:

选型方式优势劣势适用场景
商用模型API效果最好,开箱即用数据外发有风险,按量计费非敏感业务、快速验证
开源模型本地部署数据不出内网,成本可控机器配置要求高,效果有差距金融、政务等敏感场景
IDE插件易上手,零成本能力受限,难定制个人提效、小团队试点

成本这块容易被忽略。AI辅助测试表面上省钱,但如果你让AI每次都分析全量日志,token消耗会非常快。我后来加了一层预处理:先用脚本把日志切到关键的异常段落,把无关的调试信息过滤掉,再发给AI。这样单次分析的成本能降一半以上,同时效果反而更好,因为AI拿到的内容更聚焦了。

3. 路线B的实操:把AI系统的质量握在手里

如果说路线A是“旧瓶装新酒”,路线B就是“新瓶装新酒”,这也是更多人觉得无从下手的部分。我自己也是踩了不少坑才摸出个框架来。

3.1 面向Agent的测试设计

大模型应用最常见的形态之一就是Agent:给模型一个目标,它自己规划步骤、调用工具、完成操作。测试这类系统的最大难点是:过程不确定,结果也不确定。

举个例子,一个能自动操作浏览器的Agent,你让它“帮我在某电商平台买一件价格低于100元的衬衫”。它可能打开搜索结果页、筛选价格区间、点击第一个商品、加入购物车,也可能直接换一个搜索词重新搜。两次运行的行为路径可能完全不一样,传统的脚本录制回放在这里彻底失效了。

我采用的评估框架是三层校验:

第一层是任务成功率。设定清楚什么叫做“完成”,比如明确是否完成下单、是否成功预约、是否返回了正确答案。这一层可以用模型判官来做,也可以结合具体的接口返回数据来判定。

第二层是过程合法性校验。这一层非常重要,是区分“Agents真的在干活”和“Agents在瞎试”的关键。我在测试里会记录Agent每一步的工具调用序列,然后设置合法性规则,比如:支付操作前必须有确认环节、删数据操作前必须有权限核验、外部API的调用频率不能超过某个阈值。只要规则被违反,不管最终任务有没有完成,都判定为失败。

第三层是成本控制。Agent和普通API调用不一样,它可能在一次任务中调用几十次模型、往返几十个工具。如果一次任务消耗的token是普通对话的五十倍,用户体验和成本都会出问题。所以我会给测试加上一个“步骤数上限”和“token消耗上限”的断言,防止Agent在复杂任务里低效空转。

3.2 RAG系统的评测与幻觉治理

RAG是目前大模型应用落地最普遍的架构:先把企业文档切片向量化,用户提问时先从知识库检索相关片段,再让大模型基于检索结果生成答案。它的好处是答案有依据,坏处是“有依据”不等于“有正确依据”。

RAG系统的测试,我推荐从三个维度来设计评测集:

第一个维度是检索质量。这个问题最常见,检索不到或检索到错误的内容,模型再强也答不对。评测方法是将一组“问题-期望命中文档”对导入系统,看召回率的情况。比如问了“年假政策是什么”,期望命中的是《考勤管理制度》第4章,如果系统检索到了《薪资发放细则》,那就是检索偏了。

第二个维度是答案正确性。这个用“问题-标准答案”对去跑,然后让模型判官或者人工来判断,最后输出人工评估后的准确率。这个维度的评测集需要积累,从真实用户反馈和客服日志里去捞,而不是找几个通用问题凑数。

第三个维度是幻觉率。所谓幻觉,就是模型一本正经地输出知识库里没有的内容。评测方法需要设计一些知识库没有覆盖的问题,或者针对文档中故意留空的段落提问,看模型是否编造答案。这个指标是RAG系统的生命线,幻觉率控制不住,系统内容毫无可信度。

做RAG评测过程中最需要注意的一点是:不要只用内部团队写的问题来评测。内部人员太了解业务了,问的问题都太“标准”,真实用户的问题往往是口语化、模糊、带错的。我后来让运营部门拉了三个月的真实用户提问记录,筛选出高频问题,再统一清洗成正则格式,评测集才真正有了业务代表性。

幻觉治理方面,我亲身试过有效的三板斧:

第一,在提示词层面强约束,明确告诉模型:“如果检索结果中没有相关信息,请直接回答‘知识库中未找到相关内容’,不要自行推断。”这一招简单但有效,能降低过半的幻觉次数。

第二,给答案加引用溯源,要求模型在生成答案时标注依据来源,这样即使出现错误,用户和测试人员也能快速定位。

第三,建立兜底答案库。对知识库中找不到答案的高频问题,提前配置固定的应答话术,避免模型临场发挥。

3.3 模型部署与线上验证

模型不是离线的玩具,它最终要部署到线上服务真实流量。这个环节我的经验是:模型版本上线,要当作一次完整的功能发布来看待,而不是像改个配置一样直接推上去。

灰度发布是必须的。比如先把5%的流量切到新模型版本,对比新老版本在同一批请求上的表现。重点看三个指标:用户满意度反馈(点赞、点踩)、平均响应时间、badcase率。如果新版本没有明显的正向提升,就回滚,稳稳当当的。

线上的质量监控也和传统系统不一样。传统系统监控的是错误率和响应时间,AI应用还需要多一层语义层面的监控。我的做法是:对线上请求做采样,把用户的问题和模型的回答打包,跑一个轻量级的质量评估脚本,自动打标“疑似badcase”,再推送给测试人员人工确认。这个流程跑通后,线上质量问题从“用户投诉才知道”变成了“模型回答后几分钟内就能感知”。

4. 两条路线的交点:质量度量与工程化

写到这里,两条路线各自的核心打法已经讲完了。但真正让我觉得“两条路线最终是一个答案”的时刻,是在做工程质量度量的时候。

4.1 指标体系怎么设计才能不打架

路线A和路线B各自有各自的指标,但如果不做统一设计,两条路线上的人会各说各话。测AI辅助测试效果的人关心“用例生成效率提升了多少”,测AI系统的人关心“模型的准确率是多少”,这两个指标完全无法对话,更别提统一决策了。

我的建议是建立一张分层指标卡,把两条路线的指标统一到“效率-质量-成本”三个维度下:

维度路线A指标举例路线B指标举例
效率用例生成耗时、测试数据准备耗时评测集迭代周期、badcase标注效率
质量AI用例采纳率、AI审查缺陷命中率模型准确率、幻觉率、任务成功率
成本单条AI用例生成成本单次模型调用的成本、Agent单任务成本

这张表的关键在于:每条路线的指标最终都要能映射到“这个AI投入到底值不值”这个核心问题上。如果AI辅助测试让用例生成快了,但生成的大量用例没有被采用,那只是在消耗算力;如果AI系统的准确率很高,但单次服务的成本高到无法覆盖业务收益,那也没有商业价值。

4.2 提示词和评测集都要纳入版本管理

这一点是我在实战中吃过亏之后才真正重视起来的。

AI辅助测试的提示词不是一次性写好的,而是持续迭代的。同一个场景的提示词,今天加了几个历史缺陷描述,明天调整了输出格式,如果这些变化不做记录,后面的人完全不知道当前提示词是怎么演化来的。我会把提示词当成代码来管理,提交到仓库里,走评审、变更记录、版本回滚的流程。刚开始团队觉得小题大做,直到有一次新版提示词生成的用例质量突然崩了,翻Git记录发现是有人改漏了一个限制条件,才意识到这个流程的价值。

同样,路线B里的评测集也要版本化。因为评测集本身就是AI系统的“测试用例”,而测试用例的稳定性是质量评估的底线。我遇到过评测集里混入了之前测试时生成的模型回答,导致后续所有模型版本在这个评测集上都“表现优异”,实际上是因为评测集被污染了。从那以后,评测集入库之前必须经过来源审查,任何AI生成的条目都要打标,确保评测集里要么全是人工标注的数据,要么对AI生成部分单独隔离评估。

4.3 测开人员的角色要重新定位

两条路线跑下来,我对测开这个岗位的理解有了明显变化。过去测开的核心能力是写脚本、搭平台、做接口测试,现在则越来越偏向三类新能力:

第一类是提示词工程能力。不管是用AI辅助测试,还是测试AI系统,都要靠提示词和模型打交道。能不能清晰表达约束条件、能不能设计出可判定的评估指令,直接决定AI产出的质量上限。

第二类是评测设计能力。这是路线B的核心。设计评测维度、制定评估标准、抽查校准模型判官,都需要测试人员对业务和算法都有足够的理解。

第三类风险控制能力。AI系统的不确定性决定了它一定会犯错,测开的职责变成了提前预判这些错误会在哪里发生、影响有多大、如何兜底。

这些能力不一定都是“写代码”的能力,但对测开来说,代码能力仍然是底座。因为评测工具、监控脚本、数据回流链路,这些工程化的事情,最终还是得靠写代码来解决。

5. 踩坑实录:文档里不会写的那些瞬间

最后这部分,是纯实战经验分享,都是我踩过的坑,写出来给大家当参考。

5.1 案例一:AI生成用例的“正常陷阱”

团队刚开始用AI生成测试用例时,我们用某模块的接口文档做了试点,效果出奇的好,覆盖率看着相当可观。结果到了测试执行阶段,真正跑下来发现的缺陷数量并没有增加多少。

复盘时发现,AI生成的用例集中在“正常路径+常见异常”,比如参数类型错误、必填字段缺失,这些问题开发在自测时基本都能覆盖。而历史上真正导致线上事故的,是那些复杂的业务协同场景,比如“A订单部分退款后,同时触发优惠券回退和库存占用释放,此时如果用户又发起整单退款,系统会不会重复释放库存”。这类用例AI很难凭空想出来,因为它只看到了接口文档,不知道业务上的这个坑。

我的改进措施是:把近一年所有P0/P1级缺陷的类型都枚举出来,提炼成“历史缺陷清单”,作为固定内容加进提示词系统里。同时让AI在每个接口的用例生成中,明确标注“覆盖的历史缺陷类型”,如果某个接口历史上有过特定类型的坑,AI会用例生成时会重点提示。这之后,AI用例的“新增有效发现率”才有了明显提升。

5.2 案例二:评测集被污染,模型得分虚高

这是路线B里让我最尴尬的一幕。某轮模型迭代,评测集上的分数提升明显,业务方兴高采烈准备上线。我做最后把关时随手抽了几条评测集的问题和模型回答,发现评测集里有好几条问题的标准答案,居然就是上一版模型产生的高质量回答。

也就是说,这个评测集已经提前把答案的模板“泄露”给了模型,在这个评测集上刷分,本质上是在考模型背题,而不是测模型的真实能力。

从那以后我定了一条铁律:评测集中的任何一条数据,必须有清晰的来源记录,标注是人工编写还是AI生成。AI生成的数据只能用来做辅助分析,不能直接进入核心评测集。同时每次模型版本发布前,都要抽查评测集的条目,确认没有发生数据泄露。

5.3 常见问题速查表

问题可能原因解决建议
AI生成的用例同质化严重,总是常规场景提示词中缺少业务规则和历史缺陷信息将需求规则提炼为清单,补充历史缺陷类型
AI审查结果不准确,误导测试决策提示词没有给出代码上下文,或AI理解偏差提供代码库结构说明,审查结果人工确认后再转缺陷单
模型API调用成本过高上下文过长、请求次数过多增加预处理过滤,裁剪无关内容,设置请求频率上限
Agent在测试中行为路径不可重复Agent的规划和决策本身有随机性设置随机种子、记录工具调用序列、用规则校验过程合法性
RAG系统检索不到相关内容文档切片策略不合理、向量化质量差调整切片大小、优化embedding模型、增加检索召回评测
模型测试通过但线上badcase增多评测集覆盖不够、线上数据分布变化建立线上采样回流机制,定期扩充评测集,灰度发布时做好对比观察
模型回答有引文但引文内容与答案不匹配生成阶段和检索阶段脱节验证引用溯源逻辑,确保模型只基于检索片段生成答案

写在最后,或者说一点个人感想

这两条路线我分别走了一遍,最大的手感差异在于:路线A是在原有的测试框架里做“加法”,把AI嵌进已有的流程,好处是快、稳、风险低;路线B是在没有现成框架的地方做“乘法”,从零搭一套适合AI系统的质量体系,过程痛苦,但一旦成型,整个团队对AI应用的掌控力会上升一个级别。

我个人在实际操作中最大的体会是,不管哪条路线,都不要一开始就追求自动化程度最高的形态。先用最笨的方式跑通单点,再逐步让流程自动起来。比如AI辅助测试,先在用例生成这一个环节上跑两周,记录质量的提升和问题,再决定要不要扩大范围,比一上来就铺开要稳妥得多。

最后再分享一个小技巧:如果你现在刚准备在测试里引入AI,先把目标定得小一点——不要追求“AI替代人工”,而是追求“AI帮助团队在同样的时间里多发现一两个真实缺陷”。当你守住这个目标的时候,两条路线自然就会越来越清晰,因为你不会再被各种新技术名词带跑偏,而是始终盯着质量这个东西本身。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询