先给结论:不要先争论组件本身对不对,而要把它拆成“页面数据、容器宽度、加载顺序、权限状态”四类可观察条件,再为每一类各做一个最小样例页。验收时比的不是组件截图,而是同一组件在指定条件下的输出是否一致。下面用一个明确标注为假设的情境,把从分歧到样例的构造过程写清楚。
假设一个山西本地企业的网站改版项目,开发说“卡片组件已经调好了”,运营说“栏目页的卡片挤在一起”,设计说“我给的稿子不是这样”。三方说的其实是三件事:开发看的是首页,运营看的是栏目页,设计看的是标注稿。此时如果直接开会对齐,通常只会重复各自的观察。更有效的做法是先固定一个可复现的入口。
具体动作是:让开发在测试环境各建一个空白页面,分别只放这一个卡片组件,一个页面喂三条数据,一个页面喂十二条数据,一个页面放在窄容器里,一个页面放在宽容器里。这一步的产出不是修好的组件,而是一组能稳定复现差异的样例页。拿到样例页后,下一步才能判断差异来自数据量、容器宽度,还是别的因素。
组件表现差异通常不是单一原因,而是一组条件同时变化。构造验收样例时,一次只让一个条件变化,其余保持不变,否则核对结果无法归因。
把条件列出来后,每个样例页只负责验证其中一条。例如“数据条件-十二条”这个样例页,容器和状态都保持默认,这样如果它出问题,就能把原因收窄到数据量相关的高度或换行处理上。
样例页本身要能被人独立打开、独立判断,所以它需要自带说明,而不是靠口头补充。建议每个样例页包含以下内容。
需要提醒的是,页面能打开、控制台无报错,只能说明没有明显错误,不能说明组件在各类条件下都正确。同样,某个样例页在某次打开时表现正常,也不能直接推断问题已修复,因为字体或图片的加载时序可能让结果发生变化。
样例跑完后,结果会指向不同的处理方向。可以按下面的方式判断。
把结论写回验收项时,用“在窄容器、三条数据条件下,卡片标题不超过两行”替代“卡片显示正常”。前者可以被不同角色用同一方法复核,后者只能靠各自理解。
分歧往往来自描述粒度不同。设计说“间距不对”,开发说“我按标注写的”,这两句话都不够具体。把分歧转成样例时,可以要求提出异议的一方补一条最小复现条件:哪个页面、什么数据、什么宽度。补不出来的异议先挂起,补得出来的直接变成一个新样例页。
这样做的好处是,讨论对象从“谁对谁错”变成“这个样例在什么条件下输出什么”。当样例页数量增加后,可以按条件分组维护,作为后续改版的回归依据。需要说明的是,这套方法适用于组件行为存在分歧的场景;如果问题只出现在某个具体页面的局部样式,直接查该页样式比新建样例更快。
最后一步是把样例编号写进验收记录,注明每个样例对应的条件和判定方式。这样下一轮改动时,只要重跑同一组样例,就能看出哪些行为被改变,而不必重新争论一遍。