先不要急着判定组件有 bug,也不要直接把它当成“页面差异”放过。更稳妥的做法是:固定组件本身,只改变页面上下文,构造一组能复现差异的验收样例,把“哪个页面、什么条件、出现什么结果”变成项目里可以核对的条目。这样做的目的不是立刻修好,而是先确认分歧到底出在组件、页面还是数据上。
同一组件在不同页面表现不同,通常不是组件代码单独决定的。页面容器宽度、外层样式、传入数据、加载顺序、权限状态都可能参与。构造样例时,把这几类因素分开,才能判断下一步该保留现状、改写组件还是退出当前方案。
如果一次同时改容器宽度和数据条数,即使差异消失了,也无法说明是哪一项起了作用。验收样例的价值在于可区分,而不是覆盖得多。
假设某个列表组件在首页显示正常,在详情页出现错位。可以构造如下对照,注意这只是说明比较方法的假设例子,不是真实项目结论。
这三组对照能帮你把“组件不行”与“页面给的条件不同”分开。若三组都复现同一种异常,才更值得怀疑组件内部逻辑。
拿到对照结果后,取舍不必一刀切,可以按条件判断。
取舍的关键不是哪个选项更“正确”,而是哪一种更符合当前证据。证据不足时,保留并继续构造样例,通常比直接大改更稳。
多个角色对同一事实有不同理解时,争论往往停留在“我觉得有问题”。验收样例要写成别人能照着做的条目,而不是结论式描述。
每条样例至少包含:前提条件、操作步骤、预期结果、实际结果、判定结论。例如:
这样写的好处是,下一次讨论时可以直接核对条目,而不是重新描述现象。如果实际结果与预期一致,就记录为通过;不一致,则按结论指向的下一步继续缩小范围。
最值得先做的一个动作,是把组件单独放进一个最小页面,只保留必要容器和一份测试数据,再与出问题的页面并排核对。这个动作的结果会直接影响下一步:若最小页面正常,说明问题在页面上下文,接下来应检查父级样式和加载顺序;若最小页面同样异常,说明组件本身在特定条件下不稳定,接下来应检查组件内部逻辑和输入数据。
这个动作不需要完整复刻所有页面,只需要保留能触发差异的最小条件。它不能证明问题一定被解决,但能帮你决定是继续在页面上调整,还是回到组件层面处理。
最后提醒一点:请求量、抓取量或某项统计归零,不能单独证明处理正确。页面表现差异也可能由缓存、网络状态、设备差异或数据延迟造成。构造验收样例时,把这些合理解释一并记录,后续判断才不会建立在单一现象上。