先给结论:不要试图找一个“组件本身对不对”的答案,而是把分歧转成可核对的验收样例。做法是固定组件代码与数据输入,只改变页面上下文,逐个记录组件输出与页面最终呈现的差异,再让各方对同一份记录表签字确认。下面用一个假设情境串起整个过程。
假设你自建了一个站内推荐组件,代码只有一份,通过接口取数据。上线后发现:首页上它显示六条,文章页底部只显示三条,而且文章页有时整块空白。运营说“组件坏了”,开发说“组件没问题,是页面传参不同”,设计说“首页那样才对”。三方对同一事实理解不同,争论无法收敛。
这时要做的不是继续争论,而是承认一个前提:组件在不同页面表现不同,本身可能是正常的。验收样例的目标不是证明谁对,而是把“什么条件下应该出现什么结果”写成可复现的条目。
先列出可能造成差异的变量,不要急着改代码。常见变量包括:
把变量分成“页面上下文”和“数据输入”两类,是为了后续能只改一类、固定另一类。若两类同时变,任何观察结果都无法归因。
验收样例不是测试用例全集,而是能区分原因的最小组合。仍用上面的假设:先固定数据输入为“返回 10 条”,只改页面传入的数量参数,观察输出条数是否随之变化。若首页 6 条、文章页 3 条都符合传入值,说明组件读取参数正常,问题不在组件本身。
接着固定数量参数为 6,只改数据输入为“返回 2 条”,观察文章页是否出现空白或报错。若空白出现,且页面兜底逻辑没有触发,那么分歧点就从“组件坏了”转移到“页面兜底没生效”。
这里有一个实际动作:把每个样例写成一行记录,包含页面、传入参数、数据条数、实际输出、是否符合预期。这个动作的结果直接决定下一步——符合预期的样例不再讨论,不符合预期的样例才进入修复清单。
同一组件在不同页面表现不同,通常有三种可区分的原因:
区分方法很直接:把组件放到一个与首页、文章页都无关的空白测试页,传入相同参数和相同数据。若表现一致,说明组件本身稳定,差异来自页面上下文;若仍不一致,才需要检查组件内部。这个判断不需要任何平台数据,只需要一次对照。
注意,不能因为某个页面“看起来正常”就断定组件没问题。视觉正常可能只是数据恰好充足,掩盖了参数或兜底缺陷。
分歧转成项目,关键是产出物要能被非开发角色核对。建议每条验收条目包含:前提条件、操作、预期结果、实际结果、判定。例如:
运营和设计可以核对“预期”这一列是否符合业务意图,开发核对“实际”这一列。双方在同一张表上确认后,修复范围就明确了,不再围绕“组件到底坏没坏”循环。
这套方法只适用于组件逻辑与页面上下文可分离的情况。如果组件依赖页面独有的全局状态,或数据源本身按页面返回不同结构,那么先要统一数据契约,否则样例无法复现。另外,验收样例不承诺任何排名结果,它只解决“同一组件在不同页面表现不同”这一事实分歧。把分歧变成可核对的条目,下一步的修复和复测才有共同起点。