先把组件在两类页面上的实际输出各截取一份,标出差异发生的位置,再据此写验收样例。缺少完整数据或权限时,仍可用手工复现的方式得到最小样例,但只能证明该组件在这两个页面上的表现不同,不能推出全站都存在同样问题。
同一组件在不同页面表现不同,常见原因有两类:一类是页面传入的数据不同,另一类是页面环境对组件施加了额外影响。区分方法很直接——把两个页面的组件输入逐字段对照。
这一步的产出是一句话结论,例如“同一产品卡片组件在列表页显示价格、在详情推荐位不显示价格,输入数据中价格字段一个存在、一个为空”。有了这句话,后面的样例才有落点。
以读者手上的一份页面源码或截图为例,按以下顺序处理:
假设某组件在列表页和详情页都调用,列表页传入了 compact=true,详情页没有传。把详情页也设为 compact=true 后表现一致,那么验收样例就应写成两组:一组 compact=true,一组不传该参数,分别声明预期输出。这个动作的结果决定了下一步——如果差异由参数引起,验收样例只需覆盖参数组合;如果由容器引起,样例还必须包含容器结构。
没有后台权限或完整数据时,仍可执行的最小动作是:手工构造两组输入,在可见页面上对比组件输出,并记录差异点。这种做法的有效条件是你能直接看到两个页面的渲染结果,并且能修改其中一个页面的输入。
需要明确的是,手工样例只能说明被观察的两个页面之间存在差异,不能说明差异在所有页面、所有语言版本或所有设备上都成立。抓取量或请求量下降也不能单独证明组件处理正确,它还可能是缓存、路由或权限变更造成的。因此,手工样例的结论应写成“在 X 页面与 Y 页面上,输入 A 与输入 B 产生不同输出”,而不是“全站组件行为异常”。
一条可执行的验收样例至少包含四项:输入、页面上下文、预期输出、判定方式。例如:
price=100、currency=USD、compact=trueUS$100,不显示原价划线当同一组件需要在多个页面复用时,样例数量不必等于页面数量。只要参数组合覆盖了差异触发点,两到三组样例通常足够。若差异来自页面容器,则每组样例都要附带对应的容器结构说明,否则换一个页面执行时结果会再次不同。
执行完样例后会出现三种结果,对应的下一步不同:
把样例和结论一起交给开发或验收方时,对方能直接照着复现,而不需要再猜你看到的是什么页面、什么状态。这比笼统描述“某个组件有问题”更能推动处理,也避免把只出现在两个页面上的现象误当成全站缺陷来修。