先给结论:不要追求一个“万能样例”覆盖所有页面,而是按组件所处的上下文分组,每组选一个代表页面作为验收样例,并明确该组的保留、改写或退出结论。同一组件表现不同,通常不是组件本身不稳定,而是它承载的内容类型、容器宽度、数据来源或权限状态不同。验收样例要能区分这些变量,才能帮你决定旧内容、旧系统或旧合作关系里哪些部分值得留。
构造样例前,先做一次归因。把同一组件出现的页面列出来,按四个变量分组:内容长度与结构、容器宽度与相邻模块、数据来源与更新频率、访问者权限与登录状态。如果两个页面只有内容长度不同,就归为同一组;如果同时换了容器和数据来源,就拆成两组。
一个可执行的判断动作是:在每组里选一个页面,临时把该组件替换为纯文本占位内容,再观察布局是否仍然异常。如果异常消失,问题更可能出在内容与组件的配合;如果异常仍在,问题更可能在容器、样式继承或脚本加载顺序。这个结果直接决定下一步:前者要改内容规范或组件容错,后者要改布局或加载策略,而不是继续加验收页面。
验收样例的价值不在于证明组件“能显示”,而在于支撑取舍。可以按三种结论分别设计:
三种结论不必同时成立。多数情况下,同一组件会在不同页面分别落入保留和改写,只有少数页面需要退出。验收样例按结论分组,比按页面数量平均抽样更能暴露真实风险。
要区分“组件问题”和“页面问题”,证据要能排除合理解释。可以按下面的顺序取:
如果某项统计归零,比如某个旧页面的访问量降为零,不能单独证明该页面可以退出。它也可能是入口被移除、跳转被改错或抓取被阻断。需要结合入口是否仍存在、内容是否仍被其他页面引用、退出后是否有替代路径来判断。
假设某旧系统里有一个“相关链接”组件,出现在三类页面:产品说明页、旧公告页、合作方介绍页。产品说明页容器宽、内容短,表现正常;旧公告页容器窄、链接多,出现换行错位;合作方介绍页数据来自已停止更新的旧接口,链接长期为空。
按上面的方法,验收样例可以这样构造:产品说明页归入保留组,只验证不修改组件时的可读性;旧公告页归入改写组,用一条真实长度的旧公告验证改写后的列表在窄容器中的表现;合作方介绍页归入退出组,记录移除组件后该区域改为静态说明,并确认下方模块上移后不遮挡。这个例子的数字和页面类型都是假设,用于说明分组比较的方法,不代表任何真实项目结果。
执行后如果改写组通过而退出组仍出现空链接,说明退出动作没有覆盖数据来源,下一步应改为在数据层停止调用,而不是继续调整样式。这就是验收样例影响下一步决策的方式。
每个样例都应附带适用条件:它代表哪一组变量、结论是保留还是改写或退出、执行哪个动作、动作后观察什么。没有适用条件的样例,换一个页面就会失效,也无法解释为什么同一组件在不同页面表现不同。把条件写进验收记录,后续新增页面时才能判断它应归入哪一组,而不是重新从头试一遍。