先把组件从“页面整体印象”里拆出来,固定三组变量:页面类型、数据形态、容器宽度,再为每组写出可复现的输入与预期输出。验收样例不是重复截图,而是让同一组件在受控条件下暴露差异,从而判断差异来自组件本身、页面上下文,还是内容数据。
跨页面表现不同,常见原因是组件被不同页面赋予了不同职责。导航在首页承担入口聚合,在详情页承担位置提示,两者对高度、折行、选中态的要求并不相同。若一开始就把整页作为验收单位,差异会被归为“页面问题”,无法定位到组件。
实际操作是给组件写一份边界说明,至少包含三行:它接收哪些字段、在哪些页面出现、允许出现哪些形态变化。例如一个卡片组件,字段是标题、摘要、缩略图、标签;出现位置是列表页、搜索结果页、相关推荐区;允许的变化是摘要行数、缩略图比例、标签数量。边界之外的变化,不应写进这组验收样例。
样例的价值在于可复现,而不是覆盖全部页面。建议按变量组合出最小集合,每组只改变一个变量,其余保持固定。
把这三组变量交叉后,不必全部组合,只需保留能区分原因的组合。比如长文本加窄容器,用来验证截断规则;缺图加宽容器,用来验证占位是否撑开布局。
验收样例要能交给别人执行,所以每条至少包含四项:输入数据、所在页面、容器宽度、预期结果。预期结果要写成可观察的事实,不写“看起来正常”。
判定方式要写清是看结构还是看像素。结构判定关注元素是否出现、顺序是否正确、是否溢出容器;像素判定关注间距、对齐、比例。两者混在一起,容易把可接受的差异当成缺陷。
拿到差异后,先做一次归因,再决定改组件还是改页面。可以用一个假设例子说明:假设同一卡片组件在列表页显示正常,在详情页相关推荐区出现图片拉伸。检查发现详情页给容器设了固定高度,而列表页没有。此时差异来自页面上下文,不是组件本身。处理动作是去掉详情页相关推荐区的固定高度,或让组件在固定高度下改用裁切而非拉伸。动作完成后,再回到同一组样例复验,确认列表页没有因此回退,这一步决定下一步是继续调整页面还是回到组件内部。
反过来,如果同一组件在相同宽度、相同数据下,仅在某一页面出现标签换行位置不同,而容器宽度一致,则更可能是组件内部样式被页面级选择器覆盖。此时应优先收敛样式作用范围,而不是逐页打补丁。
样例跑完后,把结论分成三类:需要改组件的、需要改页面的、需要改内容规则的。改组件影响面大,改页面影响面小但容易累积,改内容规则则要回到编辑流程。分类之后,按影响面从大到小处理,每改一项就回到对应样例复验。
如果某个差异在多种页面、多种数据下都稳定出现,优先改组件;如果只在特定页面出现,优先改页面;如果只在特定数据形态下出现,优先补内容规则,例如限制标题字数、规定缺图时的默认处理。这样处理顺序能让后续验证有明确对照,不会在同一轮里同时改动多个变量而无法判断是哪一步起了作用。