先给结论:不要试图用一个“万能样例”覆盖所有页面,而要把组件拆成状态和页面上下文两个维度,为每个组合单独写一条可判定的验收样例。你手上只要有一个能打开的页面和一份组件清单,就能开始做这件事,不需要完整数据或后台权限。
同一个组件在不同页面看起来不一样,通常来自三类原因,处理方式完全不同:
可执行的最小动作:打开两个出现差异的页面,只改浏览器窗口宽度,不改任何内容。如果差异随宽度出现或消失,问题在容器;如果差异始终存在,再去看数据或状态。这一步的结果决定你接下来写的是布局样例还是状态样例,避免把两类问题混进同一张验收表。
假设你手上有一个商品卡片组件,它在列表页和详情推荐位表现不同。不要写“卡片显示正常”这种无法判定的条目,而是列出两个轴:
交叉后不必全测,先挑最可能出问题的组合:长标题 + 窄容器、无图 + 三列、空价格 + 任意容器。每条样例写成“给定什么输入,在什么容器下,观察到什么就算通过”。例如:给定标题为 40 个汉字、无主图,在详情页侧栏宽度下,卡片高度不超过相邻两张卡片的平均高度,且文字不溢出容器。这个写法让不同人执行能得到同一结论。
没有后台账号、拿不到真实数据,仍然可以构造样例,但要明确哪些结论不能推出:
一个注明假设的短例子:假设列表页每行固定三列,卡片最小宽度由内容撑开。你在窄容器里看到卡片换行,这只能说明当前容器宽度小于三列所需总宽,不能直接断定是组件写死了宽度。下一步动作是把容器宽度逐步调大,记录卡片在第几个宽度值恢复单行,这个数值才是你写进验收样例的边界依据。
一条合格的样例至少包含四要素:输入数据、容器条件、操作步骤、通过判据。缺任何一项,执行者都会凭感觉判断。可以用下面的结构组织,写在自己的文档里即可:
样例编号 - 组件名 - 状态 - 页面容器 - 输入描述 - 操作 - 通过判据
操作步骤要具体到“把窗口拖到 1024 像素宽”“把标题替换为 40 个汉字”,而不是“调整到合适大小”。通过判据要可观察,比如“文字不超出卡片右边界”“按钮仍在可视区域内”,避免“显示美观”这类主观描述。
样例跑完会出现三种结果,对应三种动作:
需要提醒的是,某个页面在样例中通过,并不等于该组件在所有真实数据下都不会出问题,只说明在你设定的输入和容器范围内表现符合预期。样例的价值在于把“表现不同”这个模糊描述,变成一组可以重复执行、可以交接给别人的具体判断,从而让下一次改动有明确的对照基准。