先给结论:不要按“组件本身没问题”或“页面有问题”来分责,而是把差异拆成可复现的输入、可观察的输出和可判定的阈值,为每个页面各写一条样例。假设某淮南企业官网的询价表单组件在首页显示正常,放进产品详情页后提交按钮被说明文字挤到下一行;此时验收样例要同时覆盖两个页面,而不是只测组件默认状态。
假设这个官网有三类页面:首页、产品详情页、联系页,共用同一个询价表单组件。首页侧栏宽度较窄,表单纵向排列;产品详情页正文区较宽,表单被放进两栏布局;联系页则嵌在整屏横幅下方。三方角色对“表现不同”的理解分别是:设计看截图,前端看代码,运营看用户能否提交。分歧点不在谁对,而在于每个人观察的页面和条件不同。
把分歧转成项目可核对的对象,第一步是记录差异出现的页面路径、视口宽度、组件所在容器宽度和页面加载顺序。第二步是约定哪些差异算缺陷,哪些只是布局适配。例如按钮换行在窄容器中可能是预期行为,但在宽容器中出现就是缺陷。这一步做完,验收样例才有边界。
组件级样例只能证明组件在孤立状态下可用,不能证明它在真实页面里可用。建议按“页面 + 容器 + 视口 + 操作”四要素写样例,每条样例只验证一个可观察结果。
这三条样例的差别不在组件代码,而在容器和视口。写样例时把“正常显示”替换成可判定的描述,例如“按钮文字不换行”“错误提示出现在输入框下方且不遮挡下一项”。判定标准越具体,后续返工越少。
当产品详情页出现按钮换行时,先收集三类证据,再决定是改组件、改页面容器还是改验收标准。
这三类证据不能单独证明结论,因为字体加载、浏览器缩放和内容长度也可能造成类似现象。但它们能帮你排除明显方向。假设最小测试页中按钮不换行,而产品详情页换行,那么下一步优先检查产品详情页的容器宽度和全局样式覆盖,而不是直接重写组件。
验收样例不需要长篇文档,但要能让另一个人在不同时间复现。每条样例至少包含:页面标识、容器条件、操作步骤、预期结果、实际结果和判定。下面是一个假设的短例,用来说明写法,不代表任何真实项目结果。
样例:产品详情页询价表单按钮可见性
这条样例的价值在于:它把“表现不同”变成了一个具体页面、具体容器和具体操作下的可核对结果。如果实际结果与预期不符,团队不必争论组件是否有问题,而是按证据方向继续排查。
如果组件只在一个页面使用,且该页面容器宽度固定,那么可以只写一条页面级样例,不必为每个视口都写。如果组件跨多个页面复用,且各页面容器宽度差异明显,就必须为每个页面至少写一条样例,否则验收会漏掉真实使用场景。
另一个判断依据是操作路径是否相同。假设首页表单用于快速询价,联系页表单用于详细留言,两者字段和提交后行为不同,那么样例要分别覆盖字段校验和提交反馈,不能只测外观。外观正常但提交失败,对用户来说仍然是不可用。
把差异写成样例后,下一步动作是让设计、前端和运营各自确认自己关心的那条样例。确认完成后,再进入修改和复测。复测时只改一条变量,例如只调整容器宽度,观察按钮是否恢复;如果同时改样式和容器,就无法判断哪项改动起了作用。