结论先给:不要按“组件本身”验收,而要按“组件×页面上下文”的组合验收。同一个产品卡片、表单或导航,在首页、列表页、详情页里因为容器宽度、数据条数、权限状态不同而表现不同,验收样例必须覆盖这些差异组合,而不是只在一个样板页上通过就放行。但如果差异只出现在旧系统遗留页、且该页已列入退出清单,就不必为它补样例,直接确认下线即可。
表现不同往往被笼统归为“样式问题”,但验收样例的写法取决于原因类型:
把这三类混在一起写“检查显示是否正常”,验收时双方会各说各话。分开写,才能定位到底是容器、数据还是状态导致差异。
一条可执行的样例至少包含四段。以假设的“产品卡片”为例,说明结构而非真实项目:
这样写的好处是,差异出现时能直接判断是前提没覆盖,还是组件真的坏了。下一步动作也随之明确:补前提,还是改组件。
不必穷举所有页面,但要覆盖会改变组件行为的维度。做法是列出维度并取边界值:
把这三个维度交叉,只保留真实会出现的组合,形成一张差异矩阵。矩阵里的每一格就是一条验收样例。实际动作是:先跑矩阵中“数据为空+窄屏”这类极端格,如果这里通过,常规格大概率没问题;如果这里失败,先修组件再补样例,而不是逐个页面手工比对。
面向已有读者的一个现实取舍:老站改版时,旧模板页、旧合作方嵌入页往往也用了同一组件,但它们的容器和数据早已不再维护。这时有两种成立条件:
反例:如果旧页虽然计划下线,但仍是用户从搜索结果进入的主要入口,那么“不纳入”会让上线后大量用户看到错位页面。此时结论失效,必须至少保留一条冒烟样例,确认旧页不报错、可跳转。
把上面的结构落成可核对的记录,而不是口头结论。假设示例:
样例:列表页-窄屏-空数据-未登录;动作:直接打开列表页;预期:显示空状态提示,卡片区不塌陷;结果:通过/失败;失败则记录容器宽度与截图编号。
这条记录的价值在于可复现:换一个人、换一台设备,按同样前提能跑出同样结果。失败时,下一步动作是回到差异矩阵,确认是前提缺失还是组件缺陷,再决定修组件还是扩样例。验收样例不是一次性文档,而是随着页面退出和新增持续收窄、替换的活清单。