先固定组件版本与数据状态,再把每个页面的差异写成可复现的输入、预期和判定方式;如果差异来自页面上下文而非组件本身,验收样例就应把上下文一并纳入,而不是只截一张图留档。
同一个按钮、卡片或导航组件,在首页正常、在列表页错位,常见原因并不在组件代码,而在容器宽度、父级样式、内容长度或加载顺序。要构造可核对的样例,第一步不是争论谁看错了,而是把“不同”拆成可观察的变量。
如果换掉页面上下文后差异消失,问题更可能属于页面样式或布局约束;如果换页面仍复现,才应回到组件本身。这个判断会直接决定下一步由谁处理。
多个角色对同一事实理解不同,往往是因为各自脑中的“正常”不一样。验收样例要做的,是把这种隐性预期写成可核对的条目。假设一个卡片组件在首页显示三行摘要,在搜索结果页显示五行,在移动端又折成两行;这三处并不是同一预期,不能共用一条验收结论。
动作上,可以先把分歧最大的一个页面写成样例,交给产品和前端各确认一次。若双方对“预期”仍不一致,说明需求本身没有定清,而不是验收方法有问题;此时应先补预期,再继续构造其他页面样例。
当差异只在真实页面出现,直接改线上页面排查成本高。更稳妥的做法是构造一个最小复现页:只保留组件、一个容器和必要样式,然后逐个加回真实页面的条件。
每加一个条件就记录一次结果。若加入某个条件后差异出现,这个条件就是验收样例中必须写明的输入项。它的价值在于让后续回归测试有明确对象,而不是每次上线都重新争论。
样例只有能被别人按同样步骤重放,才算完成。建议每条样例包含:页面标识、组件版本、输入数据、操作步骤、预期结果、实际结果、判定结论。例如“搜索结果页卡片,容器宽度 320,标题 40 字,摘要 120 字,未登录,预期摘要显示三行并出现省略号”。
执行时先跑差异最大的页面,再跑表现正常的页面作为对照。若对照页也出现同样问题,说明样例的输入条件写漏了;若对照页正常,则差异范围被缩小。这个结果会影响下一步:是回到组件修复,还是补充页面级样式约束。
不是所有差异都值得无限补样例。若差异只出现在已废弃模板、极端窗口宽度或不可复现的临时数据下,且不影响主要任务路径,可以先记录为已知限制,而不是阻塞上线。反之,若差异出现在主要入口、影响点击或阅读,就应把该页面纳入必测样例。
判断依据可以简化为两条:该页面是否承载主要任务;该差异是否改变用户能否完成该任务。两条都成立时,继续构造样例;只成立一条时,先与相关角色确认优先级,再决定是否纳入本轮验收。这样既避免漏掉真实问题,也避免把验收清单膨胀成无法执行的文档。