作者:AITester 团队
转载请联系授权
一个让测试经理崩溃的场景
上周和一位做 ToB 业务的朋友吃饭,他诉苦说:
“我们自动化测试做了三年,脚本攒了 800 多个。结果每次发版前,团队还是全员上阵手工点。问为什么,测试同学说:‘自动化脚本那玩意儿,信不过。’”
我问他:“800 多个脚本,都跑一遍要多久?”
他说:“理论上 4 小时。实际上三天能跑完就不错了,中间一半时间都在修脚本。”
这就是很多企业自动化测试的真实状态:不是没做,而是做了之后比没做还累。
下面这张图,很能说明问题:脚本化测试的维护成本,会随着时间和用例规模一路飙升。

图 1-1 自动化测试维护成本曲线:脚本化测试与平台化测试的对比
自动化测试的三大幻觉
我后来想了想,之所以会出现这种情况,是因为大家对自动化测试有三个幻觉。
幻觉一:录制回放就是自动化
很多团队起步阶段用录制工具,点几下鼠标就能生成一段脚本,看起来很美好。
但问题也很明显:
前端改一个 class 名,脚本就挂了。
页面布局一调整,选择器全失效。
业务逻辑稍微复杂一点,录制出来的脚本根本没法维护。
录制回放不是自动化,它只是把手工操作变成了不可维护的代码。
幻觉二:脚本越多,覆盖越全
800 个脚本听起来很多,但如果里面藏着大量重复、低价值的用例,反而是一种负担。
我见过一个团队,光是 “登录后检查首页标题” 这个场景就有 17 个脚本,分布在不同测试套件里。每次首页文案改一个字,17 个脚本全红。
数量不等于质量,重复不等于覆盖。
幻觉三:自动化测试是测试团队的事
很多公司把自动化测试当成测试团队的 KPI,开发和测试各干各的。
结果是:测试脚本里写的选择器,开发看不懂;前端改了 DOM 结构,也不会通知测试。两边信息割裂,脚本越来越脆弱。
自动化测试要真正跑起来,必须是开发、测试、产品一起参与的工程实践。
为什么自动化测试会变成 “面子工程”?
这三大幻觉背后,其实是一个更深层的问题:大家把自动化测试当成工具问题来解决,而不是工程问题。
什么叫工具问题?
买个商业工具
引入一个开源框架
招聘几个会写脚本的人
这些当然重要,但工具只能解决 “执行” 的问题,解决不了 “设计、管理、协作、度量” 的问题。
真正的自动化测试平台建设,至少要回答四个问题:
场景:采购订单审批
├── 步骤:审批人登录
├── 步骤:进入审批中心
├── 步骤:通过订单
└── 步骤:验证流程状态
区别就像下面这张图:左边是传统脚本化测试,登录、导航、断言逻辑分散在每个脚本里,重复且难维护;右边是平台化测试,用例只描述业务场景,公共能力收敛到步骤执行器里统一实现。

图 1-2 传统脚本化测试与平台化测试的对比
就这么一个结构调整,带来的好处是:
业务语义清晰了:新人看到场景名就知道这个用例在测什么。
重复用例被合并了:登录、导航等公共步骤被抽象成可复用组件。
维护成本下降了:页面元素变了,只需要改一处公共步骤,而不是 17 个脚本。
这个客户后面才有了信心引入更稳定的执行引擎和自愈定位机制,但第一步,一定是先把 “脚本思维” 改成 “场景思维”。
自动化测试平台真正的价值,不是 “自动跑”,而是 “自动维护”
很多人问我:什么样的自动化测试平台才算好?
我的标准很简单:上线三个月后,维护成本是不是比手工测试低。
如果三个月后,你每周还要花两三天修脚本,那这个平台就是失败的。不管它用的技术多先进。
要做到这一点,平台需要具备几个能力: