测试团队最常卡住的不是「要不要上自动化」,而是「这条用例到底该不该自动化」。全上脚本,维护成本压垮人;全靠手工,回归一遍要熬夜。这篇给一套按用例特征做判断的顺序,以及自动化和手工怎么分工的做法,照着对一遍就能定下来。
测试团队最常卡住的不是「要不要上自动化」,而是「这条用例到底该不该自动化」。全上脚本,维护成本压垮人;全靠手工,回归一遍要熬夜。这篇给一套按用例特征做判断的顺序,以及自动化和手工怎么分工的做法,照着对一遍就能定下来。
先记住一句:自动化不是「更高级的手工」,它是另一种东西。把它当升级版来铺,通常会得到一堆跑不动又不敢删的脚本。把它当成一个「按特征派活」的问题,反而好办。
两者差的不是「快慢」,是判断方式
自动化执行的是预先写死的断言,它只能验证「预期内有没有变」;手工靠人的观察和联想,能发现预期外的问题。同一句「这个页面正常吗」,脚本回答的是「那几个字段还是不是原来的值」,人回答的是「看着别扭不别扭、点下去顺不顺」。
| 对比维度 | 自动化 | 手工 |
|---|---|---|
| 检查依据 | 写死的断言、状态码、字段值 | 人的观察、经验和联想 |
| 擅长发现 | 回归、可枚举的结果变化 | 预期外的异常、体验问题 |
| 成本结构 | 前期投入高,单次执行便宜 | 单次便宜,每次都要再花人力 |
| 改动敏感度 | 界面或需求一动就要改脚本 | 改了也能立刻上手,不用改工具 |
| 结论 | 适合稳定且重复的检查 | 适合探索和判断类检查 |
- 结果能不能被明确字段或状态码判断,能判断才谈得上自动化;
- 这条用例会不会反复跑,只跑一两次的不值得写脚本;
- 需求本身还会不会大改,大改期间写脚本等于挖坑;
- 发现问题后要不要人临场判断,要判断的留给手工。
什么情况下值得写成自动化
判定标准就三条:反复跑、结果可枚举、需求相对稳定。三条都满足再动手,缺一条就先放一放。高频回归、接口层校验、数据计算、权限与鉴权分支、批量参数组合,这几类通常最划算,因为跑得越多越省人力。
- 列回归频率把最近几次发版都手动跑过的用例挑出来,这些是自动化候选,频率不够的先不动。
- 看断言可写性问自己能不能用字段、状态码、返回值把「对错」写清楚,只能靠「看起来对不对」的,先排除。
- 挑一小批试点从候选里选一小批跑通一轮,验证维护成本,再决定扩不扩,别一上来铺全量。
- 定期回头看跑了一段时间后,统计哪些脚本经常因为界面改动而修,这些就是该退回的。
什么情况下手工更划算
探索性测试、首次验收、新功能体验、视觉与交互细节、跨端兼容的观感差异,这些自动化的覆盖成本远高于收益。它们要的不是「跑一遍有没有报错」,而是「走下来顺不顺、报错文案会不会误导人、异常中断后用户能不能自己恢复」。
- 探索性测试:没有固定脚本,靠人边试边想,脚本替代不了;
- 新功能首验:需求刚落地,脚本跟着改的损失比手工大;
- 视觉与交互:按钮位置、文案语气、动效是否别扭,靠人眼;
- 跨端观感:不同设备上的实际感受,脚本很难完整描述;
- 异常恢复:中途断网、返回、刷新之后用户能否自己走回来。
反过来也要看清楚:已经稳定几个月、每次发版都要重跑一遍的用例,还留在手工清单里就是纯消耗。判断标准是「这条用例最近几次发版有没有真的发现问题」,没有发现又在反复跑的,就该进待评估队列。
分工怎么定,以及什么时候要重估
常见分法是:核心链路在接口层用自动化兜底,界面层只自动化稳定路径,剩下的交给手工按发版节奏抽查。注意,这个分法不是一次定死的,它会随着需求冻结程度、上线频率和团队人力三件事变化。
| 变化信号 | 该怎么调 |
|---|---|
| 需求突然频繁改动 | 暂停新增界面层脚本,先保接口层 |
| 上线频率变高 | 把必跑的手工用例筛出来,转自动化 |
| 脚本频繁因界面改动而修 | 该用例退回手工或换个断言层次 |
| 团队人力紧张 | 把探索性测试和回归分开排期,别混着做 |
落地动作很简单:把用例清单打上「自动化/手工/待评估」三个标记,每次发版后改一次标记。比写一份分工文档有用,因为标记是活的,文档写完就过期了。
判断一条用例该给谁做,看三件事:跑得勤不勤、结果能不能写清楚、需求还会不会大改。下一步把你们当前的回归清单过一遍,按上面的规则打标记,再对照站内的资料页核对工具和成本口径,会更容易定下来。→
常见问题
是不是自动化覆盖率越高越好?
不是。覆盖率上去但脚本天天修,实际收益可能是负的。看两个数更实在:自动化用例的维护工时占比、以及它替你省下的手工回归时间。前者一直居高不下,说明挑的用例不对,不是写得不够多。
小团队人手少,应该先自动化哪部分?
先自动化接口层的核心回归链路,因为接口比界面稳定得多,改动少、断言好写、跑得也快。界面层的自动化放到后面,等界面稳定了再考虑。人手少的时候,把有限的时间花在不容易失效的地方。
同一条用例可以既手工又自动化吗?
可以,但要分清目的。比如支付流程,自动化跑通主路径和金额计算,手工再验一遍异常提示和退款入口的观感。两边验的不是同一件事,就不算重复投入。真重复了,留一个就行。