最近后台收到不少同学的私信,问得最多的问题就是:现在AI测试工具这么猛,功能测试是不是要凉了?我们是不是快没饭吃了?
咱们接着上一篇的话题,深入聊聊AI搞不定的具体场景。光说理论太虚,咱直接上真实案例,你看看这些场景是不是你工作中也经常遇到。
场景一:业务规则“反直觉”,AI直接懵圈
案例:优惠券叠加逻辑
电商大促,规则是“满300减50”的优惠券和“满200打9折”的活动可以叠加,但叠加后总优惠金额不能超过原价的30%。
AI的做法:生成测试数据,算几个组合,比如300块的商品,减50再打9折,算出来是225,没超过30%(90块),通过。
人工测试会怎么想?先加一个299的商品,再加一个1块钱的运费补差价,凑满300。这时候减50再打9折,算法怎么算?是先减后折还是先折后减?如果先折后减,(299+1)*0.9-50=220,总优惠80块,没超过。但如果先减后折,(299+1-50)*0.9=225,也没超。
但人工会继续想:如果把那个1块钱的补差价删掉,订单变成299,优惠券不满足条件了,但活动打9折还在。这时候系统会不会把之前已经计算进去的优惠券逻辑又带出来?实际上我就遇到过这种情况,系统在删除凑单品后,没有重新计算优惠,导致用户白白享受了不该有的优惠。这种“边界状态流转”的Bug,AI根本想不到,因为它不理解“凑单”这个用户行为背后的心理。
场景二:用户体验的“体感问题”,AI测不出来
案例:App加载时的“白屏时间”
AI做性能测试,报告显示:页面平均加载时间1.2秒,P95在2秒以内,指标全绿,通过。
但是人工一测就发现问题:虽然总加载时间只有1.2秒,但前800毫秒页面完全是空白的,没有任何骨架屏、加载动画或者进度提示。用户点击之后,屏幕卡在那里,啥反应没有,很多用户会以为是手机卡了,连续点好几次,结果等页面加载完,直接跳转了多次操作。
这个问题AI怎么测?它只看响应时间数据,800毫秒的白屏在它眼里只是总耗时的一部分,它不会觉得“用户在这800毫秒里体验很差”。但人工测试会直观地感受到:哎,这页面怎么没反馈?是不是卡了?
类似的还有:滑动列表时的掉帧、键盘弹起时页面布局错乱、弱网环境下图片加载的占位图显示。这些都是“体感问题”,AI没有“感觉”,它测不出来。
场景三:跨系统数据一致性问题,AI缺“全局视野”
案例:订单支付成功后库存没扣
这是一个真实的线上故障。用户在某电商App下单支付成功后,订单状态变成了“待发货”,但商家后台显示库存没变,超卖了300多单。
开发排查发现,支付系统回调了订单系统,订单状态更新成功,但订单系统调用库存系统扣减库存时,因为网络超时,库存系统没收到请求。订单系统做了重试,但重试的时候把之前的请求ID丢了,库存系统以为是新的扣减请求,扣了两次。
AI做接口测试会怎么测?它会给支付系统发一个成功的回调请求,检查订单状态变成“待发货”,再查一下库存是否扣减,这两个都过了,它就报通过了。
但人工测试会想到什么?模拟支付回调超时、模拟库存系统在扣减时宕机、模拟重试请求带上不同的事务ID、模拟部分成功部分失败的回滚场景。这些涉及到分布式事务、最终一致性、幂等性设计的场景,需要测试人员对系统架构有整体的理解,知道数据在各个系统之间怎么流转的。AI没有这个全局视野,它只能一个接口一个接口地验证,看不到全链路的数据一致性风险。
场景四:业务语义的“潜规则”,AI听不懂
案例:社交App的“拉黑”功能
需求文档写的是:用户A拉黑用户B后,双方无法互相查看动态,无法发送私信。
AI的测试:拉黑后,A看不到B的动态,B看不到A的动态,私信发不出去,好,通过。
人工测试会想到什么?如果A和B在同一个群里呢?A拉黑了B,但群里A还能看到B发的消息吗?按照常理,拉黑了就不该看到对方任何消息,包括群聊。但需求文档没写这个,开发可能也没考虑。如果不测,上线后用户就会发现:“我都拉黑他了,怎么还在群里看到他说话?这拉黑有啥用?”
还有更隐蔽的:A拉黑B之后,B去给A的历史动态点赞,能不能点?A之前给B的评论,在拉黑后要不要显示?如果是共同好友的评论区,A和B同时出现了,应该怎么展示?这些“社交关系下的业务语义”,AI根本理解不了,因为它不懂“拉黑”在真实社交场景中到底意味着什么。
场景五:多端交互的实时同步,AI难以模拟
案例:PC端、App端、小程序端同时操作
用户用手机App加购物车,然后打开PC网页版,发现购物车是同步的。再打开小程序,也是同步的。这个功能AI测起来没问题。
但换个复杂点的:用户A用PC端看了一场直播,中途用App端扫码登录了另一台设备,这时候PC端的登录态应该被踢掉。AI会测登录态互斥,没问题。但人工会想到:如果A在PC端正在写一篇长文章,写到一半还没保存,这时候App端扫码登录把PC踢了,文章草稿还在不在?如果不在,用户心态直接炸了。
再比如:用户B在平板端看视频,手机端来了语音通话,接听后平板端的视频是暂停还是继续后台播放?如果继续播放,声音会跟通话混在一起;如果暂停,挂断电话后能不能自动续播?这些涉及多端状态同步、中断恢复的场景,AI模拟起来非常困难,因为需要同时操控多个设备、多个账号、多个状态机。
场景六:复杂权限矩阵,AI算不过来
案例:企业级SaaS的角色权限
一个企业服务系统,有“超级管理员”、“部门管理员”、“项目负责人”、“普通成员”、“外部协作成员”五种角色。不同角色对项目的“查看、编辑、删除、分享、导出、审批”六个权限各不相同。
这还不算完,权限还有“层级继承”和“覆盖规则”。比如“部门管理员”默认拥有该部门所有项目的编辑权限,但如果某个项目被标记为“只读项目”,那部门管理员的编辑权限在这个项目上就被覆盖了,变成了只读。另外还有“时间限制”,外部协作成员只在项目周期的前30天有查看权限,后30天只能看不能动。
AI做权限测试,可以枚举出5*6的组合,但这只是二维的。加上层级继承、覆盖规则、时间维度、项目状态(进行中/已归档/待审核),组合爆炸式增长,AI就算跑完所有组合,也未必能发现“某个特殊角色在特定时间点对归档项目还有导出权限”这种边缘场景。
这种场景下,人工测试的优势在于:有经验的测试人员知道权限最容易出bug的地方在哪,比如“权限变更后旧缓存没清理”、“继承链路上某个节点被覆盖后下级反而获得了不该有的权限”。这些是基于对系统和业务的理解做出的判断,AI只能穷举,不会“挑重点”。
那AI到底适合干啥?
说了这么多AI不行的,咱也客观说说AI擅长的:
冒烟测试:代码提交后自动跑一遍核心流程,确保基本功能没挂 回归测试:几千条用例每天跑一遍,发现回归Bug 数据驱动测试:用大量测试数据验证输入输出的正确性 兼容性测试:几百种浏览器/设备组合自动跑 代码级检查:空指针、未捕获异常、SQL注入风险
说白了,AI适合做“量大、重复、有明确预期结果”的活儿。而那些“需要理解业务、需要换位思考、需要全局判断”的活儿,暂时还得靠咱人工。
最后给你留个思考题
我最近面试经常问一个问题:你们项目里哪些测试用例最容易漏测?漏测的那几次,是因为什么原因?
你会发现,绝大多数漏测都不是因为AI没覆盖到,而是因为测试人员自己对业务理解不够深。AI只是工具,真正决定测试质量的,还是你对业务、对用户、对系统的理解深度。
所以别焦虑了,与其担心AI取代你,不如花时间把你负责的业务彻底吃透。搞懂了业务,你就永远比AI值钱。
对了,我整理了一份《软件测试高频面试题合集》,涵盖了大厂常问的手撕代码、性能调优、自动化框架设计等硬核题目。关注公众号后回复“面试题”就能免费获取,有面试打算的同学别错过。
有啥具体问题,也可以加我微信同行群聊。行而不辍,未来可期,下期见。

夜雨聆风