先给结论:当同一个组件在A页面正常、在B页面异常时,验收样例不能只写“组件正常显示”,而要把它拆成“组件本身、宿主页面、数据来源”三层,再为每一层各准备一条可复现的输入。缺少完整数据或后台权限时,仍然可以用静态样例、模拟数据和浏览器开发者工具完成最小验证,但只能判断“该组件在当前条件下是否稳定”,不能据此推断全站所有页面都已通过。
同一组件在不同页面表现不同,最常见的矛盾现象是:列表页的下拉筛选正常,详情页的同类下拉却错位或点不开。此时有两个合理解释。
这两种解释对应的修复方向完全不同。前者要改组件逻辑,后者要改页面接入方式。如果验收样例只记录“某页面不正常”,开发人员很可能在错误的层面反复修改。
能区分解释的证据,是控制变量后的对照结果。具体做法是:把同一个组件分别放进两个最小页面,一个完全干净,一个复制问题页面的关键条件,然后观察差异是否跟随条件移动。
如果异常只在加入某一项条件后出现,且移除后恢复,那么宿主环境干扰的解释更成立;如果基准页在特定数据下也异常,则组件自身缺陷的解释更成立。这里要注意,单次现象相同不等于因果,至少要做一次移除验证,避免把巧合当成原因。
没有完整后台数据、无法登录真实账号时,仍然可以执行以下动作:
这些动作的结果会直接影响下一步:如果问题能在最小样例中稳定复现,就可以进入修复和回归验收;如果无法复现,说明现有证据不足,需要补充条件而不是直接判定组件有问题。
一条可用的验收样例,至少包含四部分:前置条件、操作步骤、预期结果、实际结果。以“详情页下拉组件错位”为例,可以写成:
前置条件:页面容器宽度为 320 像素,组件数据为 3 条短文本。操作步骤:打开详情页,点击下拉框。预期结果:下拉面板与输入框左对齐,宽度不超出容器。实际结果:面板向右溢出 20 像素。
这样写的价值在于,任何人拿到这条样例都能复现,而不是只能看到一句“下拉有问题”。当同一组件出现在多个页面时,按“页面 + 条件 + 数据”组合成样例矩阵,比逐页口头描述更可靠。
即使最小样例通过,也只能说明该组件在已覆盖的条件下表现正常。它不能证明所有页面都已通过,不能证明其他浏览器或设备没有问题,也不能替代对真实数据的验证。反过来,某个页面请求量或抓取量下降,也不能单独证明是组件问题,还可能是内容调整、入口变化或统计口径变化。把验收范围写清楚,比给出一个笼统的“已验收”结论更有用。