资讯详情

资讯详情

AI时代,软件测试的核心是人与机器协同判断

最近一个月我被身边的测试同行问了至少五遍同一类问题现在AI写用例比我还快测接口、查日志也比我利索我们这行是不是快没饭吃了还有人把某个AI测试工具的Demo跑通了反而更焦虑说它两分钟生成的用例矩阵自己当年要写一天。每次碰到这种问题我给的回答基本都是一句话AI解的是题人问的是命。这句话听起来有点玄但放到软件测试里特别具体——AI擅长把已经有明确规则和路径的问题算得又快又准但一个版本到底该不该发、哪个Bug会砸了核心用户的饭碗、质量风险背后藏着多大的业务代价这些真正“要命”的判断最后还得由人来回答。这篇东西不是劝你抵制AI也不是劝你无脑拥抱AI而是想从“软件测试AI”这个组合的实际工作现场出发把边界、分工、实操方法以及对测试工程师职业发展的影响一次聊透。无论你是正在学测试的新人还是带团队的Leader或者已经在日常工作中频繁使用AI提效的测试开发应该都能从中找到自己能直接用的东西。1. 先看现场AI已经在测试里干得不错的四类活儿聊边界之前先把“人家已经做到的事”摆清楚。不承认AI在测试领域的实际生产力后面所有关于“人更值钱”的讨论都会显得像自我安慰。我自己的使用习惯是下面这四类活儿基本已经固定交给AI了省下来的时间去做更有判断含量的工作。1.1 测试用例生成从“按模板凑数”到“按路径穷举”这是AI最“降维打击”的场景。过去写用例我们得对着需求文档一条一条拆等价类、边界值、场景法、错误推测法全用上一版用例写两三天很常见。现在把一份接口文档或者需求描述丢给大模型让它按指定格式输出测试点几分钟就能拿到一份覆盖完整路径的用例草稿。我做过一次对比把一份200行的订单接口文档喂给AI让它分别按正常流程、异常分支、权限场景、数据边界四个维度生成用例。它五分钟给出了80多条用例覆盖度相当可观尤其是那些靠人脑容易漏掉的空值、超长字符串、并发重复提交之类的边界场景它列得比我当年的第一版还全。原因不复杂用例生成本质上是“已知规则的枚举”。软件系统里的输入域、状态迁移、约束条件都是明确的AI只要理解规则就能把所有理论上可能的情况列出来。这个“理论上可能”恰恰是它的优势——人会被经验和习惯带偏AI不会。1.2 接口与UI脚本的自动产出用例之后就是脚本。现在AI编程能力已经能根据接口文档直接生成Python或Java的请求脚本含参数化、断言、数据清理逻辑基本是分钟级产出。UI层面也出现了不少AI Agent工具能够根据操作路径自动录制回放甚至直接根据需求文本生成端到端脚本。这类场景的共同特点是“模式固定、重复度高”。冒烟脚本、巡检脚本、造数脚本属于典型的“写一次逻辑、套无数个接口”的活儿AI做起来既快又不容易出错。一个曾经要花半天的接口冒烟脚本现在从生成到调通基本控制在半小时以内。1.3 日志和缺陷报告的初筛测试过程中最耗精力的其实不是执行而是看结果。线上日志几万行报错信息夹杂在各种业务输出里靠肉眼和关键词搜索去捞效率极低。现在我会把原始日志直接交给AI做摘要让它在几十秒内提取出异常类型、出现频率、关联接口和可能的根因方向准确率足够作为人工排查的起点。缺陷报告也是一样。AI擅长文本整理你给它复现步骤、实际结果、接口报错它能生成一份格式规范、描述清晰、甚至还附带影响范围分析的Bug报告省掉了以前反复编辑措辞的过程。这里AI干的不是分析是“把话说人话”这恰恰是它的强项。1.4 回归测试的智能选择还有一个更“重”的方向AI辅助回归测试范围圈定。传统回归要么全量跑要么靠测试负责人拍脑袋圈范围。现在有些团队已经在尝试用AI分析代码变更与历史用例之间的关联关系构建影响链路然后预测哪些用例需要被纳入回归集。表格列一下这四类工作的现状会比较直观工作类型常见工具形态成熟度人的角色测试用例生成大模型对话、专用用例生成工具高筛选、补充、审核覆盖度接口/UI自动化脚本AI编程助手、AI Agent中高运行调试、维护断言逻辑日志分析与缺陷描述大模型摘要工具中高确认根因、定级定优先级回归范围智能推荐代码变更分析历史关联模型中低决策是否采纳建议范围看下来不难发现一个规律AI在这些场景里扮演的是“效率放大器”把从输入到输出之间的路径压缩了。但所有这些工作都有一个共同前提——标准已经存在边界已经明确输入输出口径清晰。一旦越过这个前提事情就开始变得不一样了。2. 再看边界AI过不去的三道坎恰恰是测试的真正价值所在如果说上一章让我显得像一个AI的“吹鼓手”那这一章要讲的就是它的反面。我在实际项目里反复碰壁之后才慢慢总结出AI在测试领域真正过不去的三道坎。这三道坎就是测试工程师安身立命的真正底盘。2.1 第一道坎业务语义与用户动机的理解这是最要命的一条。AI能理解“规则”但很难理解“人为什么这么做”。举个例子。一个电商下单流程AI生成的用例会覆盖“未登录下单”“库存不足下单”“优惠券过期下单”这些技术路径路径枚举得比人还全。但它不会追问为什么用户在这个页面停留了40秒才点支付是不是运费计算方式让用户困惑了一个按钮文案从“提交订单”改成“确认并支付”对老年用户来说会不会直接导致不敢下单这些问题的答案不在需求文档里而在用户真实的使用场景和心智模型里。测试的本质是模拟真实用户的行为而真实用户是带着情绪、习惯、认知偏见在操作系统的。AI没有身体经验它没有“第一次用某个App时手足无措”的记忆所以它天然缺失对用户体验痛点的感知能力。打个比方AI就像一个特别会做标准题的学霸但你把它丢进真实考场它没经历过空调滴水滴到答题卡上的那种慌乱也不理解前排同学一直抖腿会给后排带来多大的烦躁。这些“不标准”的变量才是现实世界里最常见的变量。2.2 第二道坎缺陷的“严重程度”和价值判断缺陷报告里有两个字段Severity严重程度和Priority优先级。AI可以根据规则去给Bug定性——比如“支付失败”严重程度为高“文案错别字”严重程度为低但规则背后的商业考量它理解不了。我经历过一个真实案例。某个注册页面上有个偶发报错出现的概率不高描述也轻描淡写。如果交给AI初筛大概率会被归为“中低严重程度”。但那是一个金融类产品那个报错恰好发生在用户绑定银行卡的关键路径上。虽然概率低一旦触发用户会直接放弃注册拉新成本全部白花。这个Bug上线前必须修没有商量余地。AI知道技术上下文但它不知道商业上下文。一个Bug值多少钱取决于它发生在什么业务节点上、影响的是什么类型的用户、对留存和转化有多大杀伤力。这些判断需要领域经验、商业敏感度甚至需要一点“想象自己是受害者”的共情力。这是“人味”的核心也是任何数据模型都学不走的。2.3 第三道坎为质量结果负责的勇气前两道坎说到底还只是能力边界第三道坎是责任边界。AI永远不会在发版确认单上签字不会在三更半夜被电话叫起来处理线上事故更不会在周会上盯着老板的眼睛说“这个版本质量风险很大我建议延后。”测试在很多团队里是一个“守门人”的角色。守门人的职责不是把门焊死而是要在充分掌握信息之后做出放行或拦截的决定并为这个决定承担后果。拦截了一个其实没问题的版本业务受损放行了一个有隐患的版本用户受损。这个权衡没有标准答案AI给不了。自动化工具和AI再怎么进化它们都是“执行层”的延伸执行层不需要为自己的决定负责。而测试工程师恰恰是被组织授权“为质量风险做决定”的角色。当组织把这种授权交给一个人的时候它考验的就不是技术能力而是判断力和担当。这个东西AI没法替代也没法模拟。3. 我对“人机分工”的实操建议哪些大胆交出去哪些必须自己盯着聊完原则说点能落地的。很多测试同行不是不知道AI有用而是不知道怎么在自己团队里划分边界。我给自己的团队定了一条分工标准实践了大半年收益非常明显分享出来供你参考。3.1 一个判断标准可枚举的交给AI要权衡的自己来这条标准听起来很抽象执行起来其实特别简单你在接一个任务的时候先问自己一个问题——“这个任务的输入和输出是否都是明确枚举的”如果是放心大胆交给AI。比如“根据这份接口文档生成所有参数组合的用例”“把这份测试报告翻译成英文摘要”“从这堆日志里提取所有ERROR级别的报错并分类”这些任务输入明确、输出口径明确、判断标准明确AI做得比人好。如果输出不是唯一确定的需要结合业务背景、商业目标、团队现状做权衡那就必须自己来。比如“这个版本要不要延期”“这两个Bug哪个优先修”“这条用例测出来的异常要不要上报给客户”“值不值得”的问题AI答不了。3.2 实践案例让AI生成用例后我做的三遍校对为了让这个标准更具体讲一个我反复在用的工作流。每次让AI生成测试用例我会固定做三遍校对每一遍的视角都不一样。第一遍对照需求文档查“业务规则是否被覆盖”。AI特别容易把技术约束当成业务规则来列比如它会把“接口超时时间5秒”当成一个测试点穷举各种超时场景但需求文档里真正核心的规则可能是“会员等级不同运费减免规则不同”。这一遍是把AI带偏的方向拉回来。第二遍对照历史线上的故障库查“曾经的坑是否被覆盖”。AI看不到团队的故障史它不知道上个月因为某个缓存策略导致线上数据错乱责任人复盘时写了“必须在回归用例中加入缓存过期场景验证”。我把故障库里的关键场景整理成一段固定提示词每次生成用例时一起喂给AI让它不要漏掉这些历史教训。第三遍人工走查异常描述的“可执行性”。AI写的用例步骤偶尔会跳步比如“点击提交按钮”前面没有“选择支付方式”新来的测试照着做会卡住。我会抽20%的用例做可执行性走查重点看步骤是否连续、预期结果是否可验证。这个流程跑下来我的用例产出时间缩短了一半但线上漏测率没有上升。关键就在于AI负责“量大管饱”人负责“止损兜底”各干各擅长的。3.3 流程上避免“AI背锅”的机制设计人机协作最忌讳的就是出了问题找不到责任人。AI生成的脚本挂了是AI的错还是环境的错AI生成报告里的结论与实际不符要不要追责如果不提前设计机制这些问题迟早会变成团队内耗的点。我建议至少做三件事。第一AI产出的测试代码必须走人工代码评审不能因为“AI写的”就放松review标准。第二AI生成的测试报告和数据结论必须标注置信度和数据来源让下游使用者知道哪些可以直接用哪些需要人工验证。第三把AI工具当作新来的实习生来管理它可以帮你干活但所有对外输出的结果都必须要有一个经验丰富的人签字。这套机制本质上不是在设防而是在给AI的产出建立信任基础。没有机制的情况下出了事大家倾向甩锅有了机制AI只是工具责任脉络清清楚楚。4. 测试工程师的新基本功提问、验证、编排以前我们评价一个测试工程师的水平看的是用例设计能力、自动化编码能力和缺陷定位能力。现在AI把这些门槛拉平了很多新的能力维度开始变得重要。我的观察是未来两三年里真正拉开差距的会是这三项基本功提问、验证、编排。4.1 问对问题Prompt是新的用例设计以前测试同学最花心思的是设计用例现在最应该花心思的是设计“问题”。同样是用AI有人只能让它写出“登录功能的测试用例”这种泛泛而谈的东西有人能让它输出一份贴合业务场景、含数据准备、含断言建议、甚至含历史故障点的测试方案。差距不在AI在提问方式。我自己常用的一套提问框架是角色目标约束示例输出格式。喂给AI之前先想清楚这五件事问出来的效果完全不一样。你可以参考这样一个Prompt示例“你是一名有5年经验的测试工程师现在需要为一个订单接口生成测试用例。接口文档如下{}。 目标覆盖正常流程、异常流程、权限场景、数据边界四类用例。 约束只关注业务规则相关场景不用覆盖纯粹的技术超时场景。 参考示例已下单未支付用户再次下单时返回错误码1001。 输出格式Markdown表格列分别为用例编号、用例名称、前置条件、测试步骤、预期结果。”这道Prompt里每一个字段都是有意义的。角色让AI调用测试领域知识目标定义覆盖维度约束排除低价值内容示例校准输出的颗粒度格式约束让结果能直接用。4.2 给AI的产出建立验证规则集AI还有一个让人头疼的问题它有时候会一本正经地胡说八道。尤其是让它分析日志、总结报告的时候它可能因为理解偏差把某个正常业务输出识别成异常。所以用AI产出任何结论性内容都要有自己的验证口径。我给自己定了一份“AI产出质检清单”第一用例覆盖度是否达到需求点全覆盖这个可以靠需求追踪矩阵来核对第二脚本在无头模式下是否稳定跑通三次以上不会因为时序问题偶发失败第三报告里引用的关键数据是否能对应上原始日志和数据库记录。验证规则集要写成文档沉淀到团队的知识库里不能每次都靠个人临场发挥。本质上我们以前怎么管理测试用例的现在就应该怎么管理“AI的产出”把它当成一个需要持续回归测试的子系统来看待。4.3 把AI嵌进CI/CD的落地顺序很多团队Leader问我的第一个问题是我们该从哪里开始引入AI我的建议是不要一上来就追求“AI全流程自动化”那是给自己找不痛快。分三步走每一步都验证收益之后再进下一步。第一步用AI辅助写测试计划、测试用例、测试数据说明这些静态资产。这一步技术门槛低团队只用学会提问就行收益立竿见影。第二步在流水线里接入AI做变更影响分析。每次MR合并请求进来AI根据改动的代码和关联的用例自动推荐回归范围。第三步再尝试让AI直接生成自动化脚本并跑在流水线里但必须带人工评审。这个顺序的底层逻辑是先让AI在有人的环节里证明自己的准确性再逐步把决策权交接给AI。跳过验证直接上强度大概率会踩中AI“偶尔出错但错得理直气壮”的坑让团队对AI失去信任反而不利于长期落地。5. AI答不了的“命运的题”面试、择业与判断力最后聊一个稍微“虚”一点但和每个测试人都切身相关的话题AI对职业发展的影响。这几年我面试过不少候选人也帮人做过简历和面试辅导越来越明显的一个趋势是AI正在把测试面试分成两个完全不同的层次。5.1 面试题里的AI八股和真正的考点网上流传的各种“软件测试面试必背100例”“软件测试八股文”现在AI都能一字不差地答出来概念题、流程题、工具题基本已经失去了筛选候选人的作用。现在面试官如果还在靠“什么是等价类划分”“什么是压力测试”这种问题筛人那这个面试官本身对招聘的理解就有问题。真正的考点正在变成那些没有标准答案的问题“你怎么判断一个版本能不能发”“如果开发和你说这个Bug不用修你会怎么处理”“一个紧急需求压缩了测试时间你如何守住质量底线”这些问题AI可以帮你组织话术但话术背后的经历、判断力和价值观AI替代不了。尤其是项目经历深挖环节AI可以帮你把简历润色得很漂亮但它没办法替你在面试官连问三个“为什么当时这么选”的时候给出让人信服的回答。那些取舍的理由、踩坑的教训、事后复盘的心得只能来自真实的项目经历。5.2 简历与项目经验AI能包装但帮不了你的底气说到简历多说一句。现在用AI润色简历、生成项目描述已经是很常规的操作了我不反对甚至建议大家都用。但有一条红线简历上写的每个项目、每个技术点你都要做好被现场深挖的准备。AI帮你把“负责订单模块的测试设计和执行”润色成“主导订单链路的质量保障体系搭建推动自动化覆盖率提升40%”这没问题但如果你说不出这40%是怎么算出来的自动化框架选型的考量是什么那这行字就是给自己埋雷。真正能让你在面试里从容的是你对项目里每一次关键决策的理解。测试这个岗位到了中高级阶段考察的核心从来不是你会不会用某个工具而是你面对模糊性的时候怎么拆解问题、怎么收集信息、怎么做决策、怎么承担责任。这四件事AI都替你做不了。5.3 职业焦虑工具会换判断力不会贬值回到开头那个问题软件测试会被AI取代吗我的看法是单纯执行性的测试工作确实在被AI快速蚕食这是事实没必要自欺欺人。但测试岗位不会消失它只是在发生结构性变化重复性的部分在贬值判断性的部分在升值。从自动化测试框架到低代码平台再到大模型工具一直在变焦虑的规律却从来没有变过越机械、越可枚举的环节越容易被替代越需要业务理解、风险权衡、责任承担的环节越稳如泰山。我现在带团队选人看的已经不再是“谁会写自动化脚本”这种基础能力而是“这个人在面对一个不明确的问题时第一反应是找答案还是找参考”。AI可以帮你找答案但只有人会判断哪个答案值得信任、哪个风险值得冒、哪道题必须自己答。这种能力不靠背八股文能获得只能在一线项目的摸爬滚打里慢慢长出来。所以我的建议是每天花点时间了解AI能做什么但在真正重要的事情上——比如重要版本的质量评估、复杂故障的复盘、测试策略的制定——不要偷懒让AI代劳。那些用来权衡、拍板、负责的时刻才是你作为一个测试工程师真正“问命”的时刻。我自己这几年的体会是AI不是来抢饭碗的它是来把我们从重复劳动里解放出来逼我们去回答更难的题。那些关于业务、风险与责任的题才是软件测试这门手艺真正的含金量所在。工具会一直换代但一个能判断、敢拍板、会负责的人永远有饭吃。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →