验收不能只看页面是否返回成功状态或某个字段是否被写入,而要回到用户原本要完成的任务链路上,用可复现的路径判断任务是否真正闭合。下面以你手上正在改的一个资料页或表单页为对象,给出一套可执行的验收方法。
操作结果看似成功,通常指系统层信号正常:请求返回、数据落库、状态变为已提交。用户任务未完成,通常指任务层信号缺失:用户没拿到他要的东西,或后续步骤无法继续。验收的第一步是把这两层分开记录,而不是用前者替代后者。
如果只验收系统层,你会得到“全部通过”的结论,但用户仍然卡住。把两层分开后,验收清单才有落点。
不要从后台看数据,而要从用户进入的起点走一遍。假设你改的是一个资料提交页,最小路径可以是:进入页面 → 填写必填项 → 提交 → 看到结果 → 使用结果。每一步都记录你观察到的现象,而不是记录你期望的现象。
这个动作的结果会直接决定下一步:如果第二个人在同一位置卡住,说明问题在任务链路而非个别账号;如果只有特定状态卡住,说明问题在条件分支。
个别样本通过,不能直接推导出规模化后仍然通过。常见例外来自三类条件差异:
判断方法不是加大样本量就完事,而是先找出哪一类条件最可能改变任务结果。你可以按这三类各取一组对照样本,分别走同一条最小路径。若例外只在某一类出现,验收范围就应锁定在该条件对应的分支,而不是全量回退。
当你发现任务未完成但系统显示成功时,先做一个小动作:在结果页之外增加一个用户可自行确认的凭据,例如可复制的编号、可下载的副本或明确的下一步入口。这个动作的结果是,用户不再依赖“页面说成功”来判断,而能自己验证任务是否闭合。
如果加入凭据后用户仍无法继续,说明问题不在反馈缺失,而在后续链路本身,此时应把验收重点从结果页移到下一步入口。反之,如果凭据让用户顺利完成,说明原来的缺口是反馈与可验证性,而不是核心处理失败。两种结果对应两种不同的修复方向,不能混为一谈。
验收还包含一个容易忽略的环节:判断改动本身是否带来任务完成率的变化。前后比较时,季节、搜索需求波动、数据采集口径变化都会影响观察值,不能把同时发生的变化直接归因于本次改动。
可行做法是保留一份改动前的基线记录,并在相近条件下复测同一路径。若无法排除外部变化,就只把验收结论限定在“任务链路是否闭合”这一层,不对流量或转化做因果判断。这样即使数据波动,你仍然能回答用户任务到底有没有完成。
验收的终点不是系统返回成功,而是你能用一条可复现路径证明用户拿到了他要的结果,并知道在什么条件下这个结论不成立。