R2.03.1State-space checklist coverage设计
检查需覆盖状态与边界情况
别名: 状态空间覆盖 · 默认态偏见 · 边界漏检 · 检查矩阵
概念解释
一致性检查要覆盖的是组件的状态空间(state-space checklist coverage),不是默认截图那一格。悬停、禁用、加载、空、错误、超长内容、权限不足,每一格都可能和默认格用了另一套间距、文案语气或动作可达性。只盯着默认格,查到的是团队已经对齐的区域;产品分叉发生在有人临时补出来的那些格。
覆盖不是把清单写得很长,而是检查动作必须踏进这些格。清单上没有「打开空列表」这一步,空列表的不一致就不可能被这张清单发现。
机制
默认态是协作里被画过、被演示过、被一起看过的那一格,分歧最小。其余格常在实现阶段按个人习惯补:错误用了另一套红色、空态用了另一句口气、禁用看起来像可点。这些格不进演示,所以也不进「大家已经看过」的记忆。清单如果只复述演示路径,它在系统抽样——抽的是已同意的单元,漏的是即兴的单元。
状态还叠加。加载叠在已填表单上、错误叠在超长文案上,组合格比单格更多。清单不必穷举笛卡尔积,但必须点名高伤害组合,并保证每个组件至少走过空、错、禁用、超长四类边界。否则「覆盖了状态」会退化成「看过一次悬停」。
边界
一次性结束页、没有空和错可走的只读证明,状态空间本身就薄,强行造格会检查虚构界面。强依赖后端、预发环境造不出权限拒绝时,覆盖声明必须标明「此格未走」,不能把没走到写成通过。动画中的每一帧不是状态格,不必逐帧进清单;要进的是动画结束时落到的那一格。个性化首页若每用户一格,覆盖策略改成抽样分位(空、典型、极满),而不是假装能走完所有用户。
怎么落地
- 为每个被检查的组件建一张「默认 / 空 / 加载 / 错误 / 禁用 / 超长」矩阵,清单步骤按格写,不按页面写。
- 高伤害组合单独占一步(错误+超长、加载+已填写),不要指望单格步骤顺便撞上。
- 走不通的格在矩阵里标「未走」,禁止用默认格的通过去填空。
- 验证:拿最近一次清单记录,数被打勾的格。若勾全落在默认列,或空/错两列空白却写了「通过」,覆盖失败。再指定一个组件,现场只打开它的空态和错误态,看清单有没有对应步骤可执行。