Files
STM32F4-Base/docs/测试说明
super_agent_bot c9c9dc8b0d
CI / 静态门禁 (pre-commit) (pull_request) Failing after 5m3s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 43s
docs(测试): 阶段 16 按两轮镜像分别登记尺寸,产品 Code 对齐 249,120(#73)
恒剥改造让产品构建 `Code` 从 249,124 变成 249,120,`docs/测试说明/板级测试/CH395F_Test_Guide.md`
§12.6 里两处跟着真机重算:

- 构建实测段不再只写一个镜像——第一轮的 `phase16c.hex`(836,489 B,Code 259,768 / RO 37,244)与
  全绿那轮的 `phase16d.hex`(836,608 B,Code 259,764 / RO 37,288 / RW 2,060 / ZI 151,596)分开登记,
  并写明第二轮与前一轮的差异来源:生产代码少一次形态比较(−4 B)+ 断言文案改写(RO +44);
  产品态那行改成 `Code 249,120`,并说明与 249,124 的 −4 B 属生产代码变化、与阶段 16 无关。
- 「实测结果」那行补上板端串口原文里的构建戳 `Nov  4 2026 08:40:28`。
- 2026-11-03 夜那条进度里的「1603 之后仍未测」改成「当时未测(次日已补全)」,避免读起来像现状。
- `docs/测试说明/单元测试/主机单测覆盖率口径.md` 第 4 轮的真机回归条目,把「head `1b5e5d4` + 剥头修正」
  改成剥头修正实际所在的提交 `b5671e8`。
2026-11-04 09:45:34 +08:00
..

测试说明目录导航

本目录放测试文档与测试采集数据,2026-10-30 起按用途分六个子目录(原先 25 篇文档 与 3 个数据目录平铺在一层,找文档靠记忆、命名靠约定)。 全量索引与每篇文档的内容说明在 docs/README.md §6(同一事实只在一处详述, 本文件不重复那些描述),这里只回答两件事:东西该放哪一层、每层现在有什么。

1. 结构与职责

docs/测试说明/
├── 流程与规范/   测试开发的标准动作、门禁决策表、测试文档模板(3 篇)
├── 单元测试/     主机侧纯逻辑单测的说明 + 跨全部套件的覆盖率口径(9 篇)
├── 板级测试/     上板测试:芯片/模块测试指南 + 实机测试实施流程(5 篇)
├── 专项验证/     针对一个问题或一次复验的台架专项流程、存储恢复操作(6 篇)
├── 测试工具/     PC 侧工具用法:串口助手、ST-LINK_CLI 烧录与复位(3 篇)
└── 测试数据/     测试跑出来的原始证据:boot_log_data/ m2_data/ m3_data/

归层的分界线是"这份文档随什么一起演进":跟着测试方法走 → 流程与规范;跟着主机侧 单测代码走 → 单元测试;跟着真机套件与硬件走 → 板级测试;跟着一次结论走(写完即定稿 的专项)→ 专项验证;跟着一个工具走 → 测试工具;不是文档而是证据 → 测试数据。

2. 归层判据(新文档该放哪)

你手上的东西 去处 判据
任何测试都要遵守的流程、命名、门禁口径 流程与规范/ 它约束别的测试文档怎么写
test/host/<模块>/ 那套主机侧单测的说明(用例数、断言点、抓出的缺陷) 单元测试/ 跑它不需要真机;文件名用 <模块>单元测试说明.md
需要真机/台架、对应 test/board/ 套件或某颗芯片的验收步骤 板级测试/ 涉及硬件接线、烧录、板端标记;模块指南命名 <芯片>_Test_Guide.md
针对一个具体缺陷或一次复验的验证动作(非常跑套件)、或一类恢复操作 专项验证/ 有明确的"做完就结束"边界,结论沉淀进模块文档/问题记录
讲一个 PC 侧工具怎么用(命令、参数、排障) 测试工具/ 主体是工具本身,不是被测对象
测试产出的原始数据(JSON、串口片段、二进制快照) 测试数据/<采集批次目录>/ 它是一手证据,不是说明

判据冲突时按这个顺序裁决:是否需要真机执行 → 是则 板级测试/;否则是否只服务一次专项 结论 → 是则 专项验证/;否则按对象类型(单测说明 / 工具 / 流程)归层。拿不准就放 专项验证/ 并在提交说明里写明理由——专项验证/ 是唯一允许"先收下再迁移"的层。

3. 现有文件清单(按子目录)

子目录 文件
流程与规范/ 测试开发标准流程.md · 自动化测试流程.md · 测试文档模板规范.md
单元测试/ 看门狗单元测试说明.md · 系统时钟单元测试说明.md · 开机账本单元测试说明.md · 配置文件单元测试说明.md · ADC输入层单元测试说明.md · 相量层单元测试说明.md · 卷锁单元测试说明.md · 时间同步单元测试说明.md · 主机单测覆盖率口径.md
板级测试/ CH395F_Test_Guide.md · GD5F2GQ5UE_Test_Guide.md · SD2506_Test_Guide.md · FTP_Test_Guide.md · 实机测试实施指南.md
专项验证/ ADC前端注入验证流程.md · 启动日志原子性复验流程.md · 链路延迟测试说明.md · 存储维护与容量恢复.md · 模拟器差距清单.md · 故障录波板级到场轮执行手册.md
测试工具/ 串口助手使用指南.md · 串口助手设计说明.md · ST-LINK_CLI_复位使用说明.md
测试数据/ boot_log_data/(39 个文件,串口/SoE 一手证据)· m2_data/(8 个,链路时延安静档)· m3_data/(11 个,链路时延 M3 各档)

各子目录内部不再加下一层:一层子目录 + 文件名前缀(模块名 / 芯片名)已足够定位,再加层只会 让引用变长、让下面第 4 条的递归门禁 glob 更难核对。

4. 四条硬约束

  1. 测试数据/ 里的文件是一手证据:只增不改。数值被"顺手格式化"就等于基线失效;要更正 结论请改文档并另存新证据文件,不动旧文件。
  2. 两类文件名有机器面,被 scripts/check_test_traceability.py 按目录递归扫描(自本目录 根往下找 *_Test_Guide.md 与 *单元测试说明.md):模块指南落 板级测试/、单测说明落 单元测试/,换层等于让追溯门禁看不见它。
  3. 改名 / 挪目录一律走 scripts/rename_ref.py(先 dry-run 再 --apply),它会同步改写 全库引用;手工扫引用既慢又漏 → docs/文档规范.md §3.6。它搬目录时原有两个会改坏内容的坑 已修(同日加了 --selftest 回归),本目录当时的处置见下面第 5 节。
  4. 引用本目录文档时用仓库根相对路径(形如 docs/测试说明/<子目录>/<文件名>.md);只有图片用 文档所在目录相对 → docs/文档规范.md §3.1 / §3.2。

5. 本次分层的处置记录(2026-10-30)

scripts/rename_ref.py 当时搬目录有两个坑(权威记录在 docs/文档规范.md §3.6 第 4/5 条,两处已于 同日修复并加 --selftest 回归;这里只留本目录的处置):

  • 测试数据/ 下 23 个证据文件的内容曾被脚本误改 → 已用 git show HEAD:<旧路径> 的原始字节逐字节还原, 现在这三个目录是纯改名(内容与 HEAD 逐字节一致)。
  • 数据 README 指向外部的 ../ 出链未自动补层级 → 已手工核对补齐(本目录 测试数据/*/README.md 与 专项验证/链路延迟测试说明.md)。