先把“表现不同”拆成可复现的输入、可观察的输出和可接受的偏差,再为每个页面各取一条真实数据,编成同一组验收样例。只要同一组件在不同页面的数据形态、容器宽度或状态不同,就不该用一张截图统一判定,而应让每个页面都能独立通过或失败。
同一组件在不同页面表现不同,常见原因有三类:输入数据不同、所处容器不同、交互状态不同。把这三类分开记录,才能判断是组件本身有缺陷,还是页面给的条件本就不同。
实际操作时,先打开两个表现不同的页面,分别记录组件外层容器的宽度、传入字段的字符数、当前交互状态。若这三项中至少一项不同,就把它写进验收样例的前提条件,而不是直接判定组件坏了。
验收样例的最小结构是:页面地址、前提条件、操作步骤、预期结果、实际结果。同一组件至少在两个页面各取一条真实数据,不要用编造的极端值代替现网数据,否则复现结论无法回到项目里核对。
这样做的结果是:当两个页面都跑完样例后,你能看到失败集中在哪一类条件上。如果只有长标题页面失败,下一步就改截断规则;如果两个页面都失败,才回到组件本身的布局约束。
多个角色对同一事实有不同理解时,争论往往停留在“我这边看是好的”。把分歧转成可核对的项目,需要一组能区分原因的证据,而不是更多截图。
假设某卡片在列表页正常、在详情页文字溢出。若宽度证据显示详情页容器更窄,而数据证据显示两边标题长度接近,那么原因更可能落在容器约束上;此时应调整详情页容器或组件的换行策略,而不是要求内容编辑缩短标题。这个假设只用于说明比较方法,实际结论仍需以项目中的记录为准。
样例写完不等于结束,关键是每条失败项都能对应一个动作。可以在样例表里增加一列“下一步”,把失败原因直接连到处理方式。
执行一次后,如果失败项从“两个页面都失败”收敛为“只有一个页面失败”,说明样例已经能区分原因,下一步就可以把该页面的条件补进组件文档,供后续页面复用。若失败项仍然分散,说明前提条件记录得还不够细,需要回到第一步重新拆分数据、容器和状态。
为了让不同角色后续还能核对,样例应放在项目内可访问的位置,并写明版本和适用页面。每次组件或页面条件变化时,只更新受影响的那几条,而不是整表重写。
当同一组件再次在不同页面出现差异时,先查已有样例是否覆盖该条件;若没有,就补一条并注明来源页面。这样验收样例会随项目积累,而不是每次争论都从零开始。最终判断标准是:每个页面都能独立给出通过或失败,且失败项都能指向一个具体动作。