05 绘制 ACC 地图的步骤
前三章的功夫,积累了三份清单:
- A — 形容词(属性)
- C₁ — 名词(组件)
- C₂ — 动词(能力)
本章做一件事:把它们放在同一个格子里,画一张你能一眼看出"哪些测了、哪些没测"的图。
开篇除恐
"矩阵""格子图"听起来像要学一种新软件。不需要。你需要的那张图,Excel 足够,甚至纸笔也够。
矩阵只是一种让你看不见的部分被看见的格式。格子 = 主动,格子里的内容 = 你的工作。
白话化
ACC 矩阵的结构
- A(行):属性
- C₁(列):组件
- 每个格子里的内容:C₂(能力)
C₁-组件A C₁-组件B C₁-组件C ...
A-属性1 能力v 能力w 能力x ...
A-属性2 能力y 能力z (空白) ...
A-属性3 (空白) 能力q 能力r ...
这样的一张图,一眼能看出:\
- 哪个格子里有内容 = 你知道要测什么
- 哪个格子里空白 = 还没覆盖到的区域
- 哪个能力贡献了多个格子的行或列 = 核心能力需要重点保护
风险评级
每个格子,标注你对该区域的风险认识:
| 标签 | 含义 |
|---|---|
| 低 | 这个区域很稳,你已有相当量的测试,改动风险可控 |
| 中 | 有少量测试,但边界情况没覆盖全;改动较大时容易出问题 |
| 高 | 完全不熟、或改动频繁、或外部依赖复杂 |
| 未知 | 你甚至说不清这个格子里该测什么——啪,这就是缺口 |
唯一危险的标签是"未知"。"低"和"高"至少有方向,"未知"是盲区。
直觉先行
想象你搬家,要把所有东西装进纸箱,箱子上写着"客厅""厨房""卧室"。
你先把桌子放进"客厅"箱。\ 然后发现书桌的灯也得放——灯是"书房"的,但拆了之后桌子和灯都得通电才能用。\ 于是你在"客厅"箱里加一包电线,又在"书房"箱里画了箭头指向桌子。
两箱的内容互相交叉,**这就是矩阵的本质:横轴和纵轴,各自独立,交汇处有你的工作。
例子贴身
☼☼ 正经:RedPen 的 ACC 矩阵骨架(自编)
湖畔 RedPen 的清单如下:
| 主编辑 | 侧边栏 | 命令面板 | 语法高亮 | PDF 导出 | 拼写检查 | |
|---|---|---|---|---|---|---|
| 轻量 | 启动快;大文件不卡 | 冷启动扫描文件列表 | 输入即时响应 | 新语言文件加载 | 含图片 PDF 大小 | 后台检查不抢 CPU |
| 可定制 | 自定义快捷键(插) | 自定义折叠规则 | 自定义指令列表 | 自定义语言规则 | 自定义 PDF 模板 | 自定义词典词条 |
| 协作友好 | 多人光标协调 | 文件变更推送 | 协同指令同步 | 合并冲突高亮 | 冲突报告导出 | 语义冲突提醒 |
情形一:空白格子的含义
表格左下角"主编辑 × 协作友好"格子里,目前只列了一个"多人光标协调"。但 RedPen 的协作还包括文本合并冲突后高亮表示冲突范围——这个能力其实横跨语法高亮引擎和主编辑窗口两个组件。
空白意味着"我还没想到",不代表"这里不需要测"。做完这个练习,你会回来补满。
情形二:一个能力跨多个格子
"自定义快捷键"这个能力来自配置读取器,但它最终服务于"主编辑"。同时"侧边栏"也用快捷键折叠。这表示:一个能力可能被多个属性共享,测试时不能只看一个格子。
格子填满之后的下一步
- 拿到一个全新的测试目标,找到它对应格子
- 评估这个格子的风险是低/中/高/未知
- 如果是"未知",这是一个要做的事,标记它
☼☼☼ 硬骨头:算一下你的 app 数据(自编)
找一个你日常使用的 app,重复本章练习:
- 列出它的三条属性(A)
- 列出它的五个组件(C₁)
- 每个组件,追问一句"它还能做什么"——写出对应的 C₂
然后放到 3×5 的表格里——哪怕格子是白的也没关系。
做完这一步,再看满格和空格的分布:\ - 满格的地方,你已经有大致的方向 - 空格的地方,是你还没想在哪——这些是下一个版本的内容
矩阵画完,永远不代表"完工了"——它只代表"这版我走到了这里",下一个版本回来补。
这一章要带走的东西
- 矩阵格式:A 为行、C₁ 为列、C₂ 为内容
- 风险四标签:"低·中·高·未知",唯一危险的是最后一项
- 能力可以同时出现在多个格子里
- 空白格子是缺口,不是"不需要填"
- 矩阵是迭代品:每次补充,都是一张更真实的地图
就这样。