验收样例要能区分“组件本身有问题”和“组件在某个页面环境下有问题”。做法是先固定组件版本与数据,再按页面差异拆出对照条件,每个样例只改变一个变量,并为每个结果指定判定标准。这样,个别页面通过、其他页面失败时,才能判断是组件缺陷、页面配置差异,还是数据本身不同。
假设一家湘潭制造企业的网站有一个产品参数表组件,用在产品详情页和方案页。详情页显示正常,方案页却出现列宽错位、部分参数被截断。此时不能直接说组件有缺陷,也不能因为详情页正常就判定方案页写法错误。需要把两个页面的差异拆开:组件版本是否一致、传入的数据结构是否一致、外层容器宽度与样式是否一致、页面是否加载了额外的样式或脚本。
验收样例的目标不是证明组件“能用”,而是找出它在什么条件下不能用。因此样例要覆盖正常条件、边界条件和冲突条件,并保留失败记录,而不是只记录通过项。
同一组件在不同页面表现不同,常见差异集中在四类。构造样例时,每类至少设置一个对照项:
操作上,先复制表现正常的页面作为基准样例,再逐项替换为异常页面的条件。每次只替换一项,记录结果。若替换到某一项时复现异常,这一项就是当前最可疑的差异来源;若全部替换后仍不复现,说明差异不在已列出的变量中,需要继续查页面加载顺序或异步数据到达时机。
一个可执行的验收样例至少包含四部分:前提条件、操作步骤、预期结果、判定依据。以假设的参数表组件为例,可以这样写:
判定依据要写成可观察的现象,例如“出现横向滚动条”“文字被省略号截断”“列顺序与数据字段不一致”。避免只写“显示正常”这类无法复核的描述。样例中的数字只用于说明比较方法,例如把容器宽度设为组件最小宽度的临界值,而不是断言某个具体像素一定正确。
复现异常后,下一步是归因。可以用一组可区分原因的证据来判断:
归因结果直接决定下一步动作。属于页面配置问题,就修正该页面的容器或样式,并回归验证其他使用同一组件的页面;属于组件问题,就固定版本、记录复现条件,再决定是升级、替换还是加一层适配;属于数据问题,就补充字段校验规则,并把空值、超长值加入固定验收样例。
需要注意,某个页面请求量下降或某项统计归零,不能单独证明是组件改动导致的。缓存、页面入口调整、数据统计口径变化都可能有同样表现。验收结论应建立在可重复的对照样例上,而不是单一现象上。
对照样例成立有边界。若目标页面使用了不同的模板结构、不同的渲染时机,或组件依赖页面级初始化脚本,那么从基准页面复制来的样例不能直接套用。此时应先确认组件是否被设计为可独立渲染,再决定样例的构造方式。
规模化验收时,建议把样例分成三层:组件级样例只验证组件在固定输入下的输出;页面级样例验证组件在真实容器与资源环境中的表现;跨页面样例验证同一组件在多个页面并存时是否互相影响。三层都通过,才能说明组件在当前站点范围内可稳定使用。任何一层失败,都应先缩小到最小复现条件,再决定是修改组件、修改页面,还是调整验收标准。