Files
simba-rmic-2026/docs/firmware-provisioning-test-matrix.csv
T
sloray e3acb37d32
构建客户端 / 检查(类型 + 单元测试) (push) Canceled after 0s
构建客户端 / Linux x64(deb + AppImage) (push) Canceled after 0s
构建客户端 / Windows x64(NSIS 安装包) (push) Canceled after 0s
构建客户端 / macOS 通用(.app + .dmg) (push) Canceled after 0s
docs: 按 humanizer 重写项目文档并同步 RMIC::2026 现状
2026-10-19 10:47:00 +08:00

8.2 KiB

1idcategoryprioritypreconditionstepsexpectedpass_criteriaevidencetoolsest_minutes
2N-01正常P0健康板;新模板;工具版本锁定分段写 Bootloader/分区表/App;逐段 verify;复位;串口与 UDP 验收3 段 verify OK;启动日志正常;15 s 内收到完整帧verify 全通过;无 panic/brownout;perf 帧率>=15 fps 且丢帧<=5%verify 日志;serial.log;perf.jsonesptool;perf_probe;serial_soak20
3N-02正常P0健康板;已 provision;同布局只写新 App;verify;复位;检查 config 保留App 版本更新;原 SSID 配置仍生效App hash 与 manifest 一致;config seq 不变;联网正常verify;serial;perfesptool;perf_probe15
4N-03正常P0健康板;已 provision;模板支持 config只 patch config(换 SSID);不写 App;复位新 SSID 生效;App SHA-256 不变app-readback SHA-256 与 manifest 一致;serial 显示 config source=partition;联网正常app hash;serial;perfesptool;provision.py;perf_probe10
5N-04正常P1健康板连续 provisioning 3 次(相同输入)幂等;无 brick;报告一致3/3 通过;设备身份一致;无重复写入错误3 份 result.jsonprovision.py20
6N-05正常P1健康板;归档镜像写 merged image 并 verify(对照)记录是否通过;不用于坏板结果记录;不改变坏板策略verify 日志esptool10
7B-01坏板P0故障板;E1 备份已验证牺牲板 E2 写读表征;生产板定向读 0xFADE7/0x10863 + 扫描模板写入区E2 复现缺陷;生产板地图正确;恢复 verify至少识别两个已知地址;恢复后关键区 verify OKscan.json;verify;backup hashesptool;provision.py30
8B-02坏板P0故障板;新布局;模板镜像分段写新 App/表;verify;复位写入区不含坏地址;App 实际镜像 verify OK;启动3 段 verify OK;serial live;UDP 有帧verify;serial;perfesptool;perf_probe25
9B-03坏板P0故障板;强制 App 槽包含坏字节写实际镜像;读回比较若镜像字节不可写则 verify 失败;工具换槽或拒绝;不 brick失败可定位到地址;设备仍可进下载模式;报告不报成功verify;scan;reportesptool;provision.py25
10B-04坏板P0故障板;config 一个槽含坏扇区写 config 多副本;复位跳过坏槽;至少一个副本有效;联网serial 显示有效 seq;报告记录 skipped 槽;App hash 不变scan;serial;reportesptool;provision.py20
11B-05坏板P1故障板;merged 镜像写 merged image(对照)预期失败或高风险;工具默认禁止记录失败地址/错误;后续流程仍走分段verify 日志;reportesptool15
12B-06坏板P1故障板;疑似间歇坏字节同一扇区扫描 3 次;不同温度/供电标记 SUSPECT;隔离;不用于 App3 次结果一致或明确记录间歇;SUSPECT 不进 App 槽scan.jsonesptool;provision.py30
13B-07坏板P2故障板;全片备份全片扫描 + 恢复得到全片地图;恢复关键区;不丢数据恢复后关键区 verify OK;时间记录scan.json;backup hashesptool60
14O-01OTAP1OTA-ready;Bootloader rollback写 ota_0;切换;复位新版本启动;分区日志正确serial 显示 ota_0;版本正确;联网serial;otatoolotatool.py;perf_probe30
15O-02OTAP1OTA-ready;当前槽有效写损坏镜像/错误 SHA;复位Bootloader 拒绝;旧槽仍启动旧版本启动;无 brick;serial 有拒绝原因serialotatool.py;esptool20
16O-03OTAP1OTA-ready;USB 继电器OTA 写入 25/50/75% 时断电;恢复至少一个槽可启动;无需整片擦3 个断点均能启动;版本/分区符合预期serial;relay logotatool.py;relay45
17O-04OTAP1OTA-ready;目标槽含坏区OTA 到坏槽;复位安全失败;旧槽不受影响旧版本启动;无 brick;报告记录坏槽serial;scanotatool.py;esptool25
18O-05OTAP2启用 anti-rollbackOTA 降级;复位按策略拒绝或接受;不 brick策略与日志一致;设备可启动serialotatool.py20
19H-01热插拔P01 块板;驱动已装插拔 20 次;记录发现时间20/20 发现;P95<=2 s无漏检;无端口残留;无错板discovery.jsonserialport;provision.py20
20H-02热插拔P02 块板同时插入按 MAC 选择;执行 patch/verify0 次错板;端口/MAC 正确两块设备报告 MAC 与操作一致reportserialport;provision.py20
21H-03热插拔P1写入进行中拔掉 USB报错;设备可恢复;不报成功错误码明确;重插后可进下载模式log;reportprovision.py15
22H-04热插拔P1扫描进行中拔掉 USB报错;备份可恢复;不半写成功重插后恢复;关键区 verify OKlog;backupprovision.py20
23H-05热插拔P1串口监视器占用端口执行 provisioning明确端口占用;不挂死错误码/提示;进程退出logprovision.py;espflash monitor10
24H-06热插拔P0错固件/错芯片选择不兼容 manifest写入前拒绝;设备不变App hash 前后一致;错误码 3reportprovision.py10
25P-01断电P0健康板/坏板;可恢复App 写入 50% 断电;上电;重刷可进下载模式;重刷后启动;不 brickBOOT 恢复;verify OK;serial liveserial;verifyesptool;relay20
26P-02断电P0config 已有一个有效副本config 写入时断电;上电旧副本有效;启动serial 显示旧 seq;联网正常serialesptool;relay15
27P-03断电P1分区表迁移中分区表写入时断电;上电;重刷BOOT 恢复;重刷表/App;不 brick可进下载模式;重刷后启动serial;verifyesptool;relay25
28P-04断电P2Bootloader 更新中(最高风险)Bootloader 写入时断电;上电;BOOT 恢复可恢复;不 permanent brickBOOT 可进下载;重刷后启动serial;verifyesptool;relay30
29P-05断电P2扫描/恢复中拔 USB/断电;恢复备份可用;关键区不丢关键区 verify OK;无半写成功backup hashesptool30
30S-01安全P0正常 provision检查日志、报告、命令行历史无密码明文;只有 SSID/hash/seqgrep 不到密码;报告字段合规grep;reportprovision.py10
31S-02安全P1Secure Boot/加密板(如有)espefuse summary;尝试未签名 patch检测 eFuse;拒绝未签名/未加密 patch工具退出码 10;设备不变espefuse 输出;reportespefuse;espsecure20
32S-03安全P1篡改 manifest/App校验 SHA-256 后烧录拒绝烧录错误码 3;设备不变reportprovision.py10
33S-04安全P2伪造 VID/PID 设备主动探测 chip/MAC/Flash识别不匹配;拒绝不写入;报告记录reportserialport;esptool20
34R-01回归P0host 环境pytest 全部 host tests100% 通过0 failed;覆盖 config/分区/manifest/选择逻辑JUnit/HTMLpytest10
35R-02回归P1硬件在环20 次循环(N/B/H 子集)首次通过率>=95%;0 brick;0 错板统计达标;失败可定位summary.jsonpytest;provision.py120
36R-03回归P0锁定工具版本重复执行同一命令 3 次同输入同命令/同结果版本/哈希/输出一致versions.txt;reportall15
37R-04回归P1报告 schema用 jsonschema 校验 result/scan/manifest全部通过0 schema errorschema 校验日志pytest;jsonschema10
38M-01迁移P1旧布局 0x70000 板备份;写新 App→新表→可选 Bootloader;保留 NVS/PHY;复位新布局启动;NVS/PHY 保留;config 可用serial live;MAC 不变;Wi-Fi 校准未丢serial;reportesptool;provision.py30
39M-02迁移P0旧布局板尝试只 patch config工具拒绝并提示迁移错误码 3/提示明确;设备不变reportprovision.py10