先给结论:不要试图找出“这个组件到底对不对”,而是把“页面类型 + 触发条件 + 可观察输出”写成三列,让每个角色都能指认自己看到的是哪一格。同一组件在不同页面表现不同,通常不是组件坏了,而是它被放进了不同的上下文。验收样例的任务,是把上下文差异固定下来,而不是争论谁看到的才是真相。
团队里的分歧大体分两类,处理方式完全不同。
判断依据很简单:如果双方打开同一个页面、同一状态,看到的东西仍然不同,那是事实分歧;如果看到的东西一样但评价不同,那是预期分歧。前者用复现步骤收敛,后者用决策记录收敛,混在一起写样例只会让清单越写越长却没人认账。
同一组件在首页、栏目页、详情页表现不同,往往来自三个变量:数据源不同、渲染位置不同、加载时机不同。验收样例应围绕这三者构造,而不是围绕“组件名称”。
假设一个用于展示文章卡片的组件,在列表页显示摘要,在详情页底部推荐位只显示标题。如果验收样例只写“卡片组件显示正常”,两个角色都会认为自己对。写成矩阵后,分歧立刻变成两格待确认项,而不是一场争论。
样例不必复杂,但要包含假设和预期结果。下面是一个结构示意,实际使用时替换成自己的页面与字段。
样例编号:列表页-卡片-01。前置假设:该页面使用列表模板,数据来自同一内容集合,未开启个性化推荐。操作:打开列表页第一页,查看源码中卡片区域的链接与标题。预期:每个卡片包含一个指向详情页的可抓取链接,标题文本与内容标题一致,摘要截断不影响链接。例外:当列表为空时,显示空状态文案,不输出卡片链接。
这个样例的价值在于:它明确了假设,所以当实际表现不同时,团队能先检查假设是否成立,而不是直接改组件。如果列表页确实开启了推荐逻辑,那“表现不同”就是预期内的,应另建一条样例,而不是把原样例判为失败。
面对多个页面表现不一致,最有效的动作不是同时修所有页面,而是选一格作为基准。
这个动作的结果会直接影响下一步:如果差异来自数据源,下一步是统一字段映射;如果来自模板,下一步是确认模板是否需要同步修改;如果来自加载时机,下一步是决定该页面是否必须首屏直出。没有这一步,后续修改很容易变成“按谁看到的改”,改完另一格又坏了。
并非所有差异都是缺陷。以下情况保留差异更合理:
判断标准是:这种差异是否服务于该页面的主要任务。如果服务于任务,就把它写进验收样例的例外栏,而不是当作 bug 修掉。反过来,如果差异只是历史遗留或模板复制导致,且对用户任务没有帮助,就应统一到基准格。
最后提醒一点:当某个页面的抓取量或请求量出现异常时,不要单独用它证明组件处理正确或错误。请求量下降可能来自入口变化、抓取预算调整、页面权重变化等多种原因,组件表现只是其中一个可能解释。验收样例的作用是缩小排查范围,不是替代因果判断。