证据链规范:每条判定可回溯、可复算
Cyclone 证据链四件套:case hash + JSONL SHA-256 digest + 失败快照 + JUnit XML。同一个用例跑两次,输出逐字节一致——不信?你自己验。
§1 · PROBLEM评审会上,报告打不过记忆
测试报告最常见的死法:评审会上,一份”通过”的报告打不过一句”我记得上周不是这样的”。没有证据链,报告只是一张纸——结论无法回溯到用例版本、原始数据和判定逻辑,第三方无法复算,也就无法被信任。
§2 · SPECIFICATION证据四件套
每条测试记录由四件证据构成,彼此锚定:
| 证据 | 作用 |
|---|---|
| case hash | 用例内容的指纹:场景 YAML + 故障配方 + 判定阈值,改一个字符 hash 就变 |
| JSONL SHA-256 digest | 证据日志逐字节摘要:同 seed 重跑必然同 digest |
| 失败快照 | 失败时刻的信号现场:最后实际值、最后变化时刻、故障注入状态 |
| JUnit XML | 出口格式:每条 verdict 一个 <testcase>,失败断言带现场快照,CI 原生消费 |
§3 · VERIFY IT YOURSELF实物验证:不信?你自己验
- 同一个用例跑两次:
cyclone run cases/aeb.yaml - 比对两次输出的 SHA-256——逐字节一致,机器可证。
- 打开
manifest.json:每条 verdict 可回溯到用例版本与原始数据。
§4 · DEEP DIVE深入了解
§5 · HONEST BOUNDARIES诚实边界
- 证据链保证的是平台侧的可回溯。SUT 内部的决策黑盒需要你的日志配合导出,才能在快照里看到中间量。
- 示例数值均为演示数据,非真实 SUT 实测。