总览
本章节范围:跨领域的通用软件工程方法论——测试、调试、CI 回归等"做任何软件都要用"的工程实践,区别于
01-03章的硬件/通信领域知识。 目标读者:需要把业界成熟工程方法借鉴到本项目(尤其 G5 仿真器 + Math 模型验证)的开发者。
范围与边界(Scope)
- 包含:通用软件工程方法论的业界实践与可借鉴清单(测试范式、回归策略、调试方法等),每篇一个独立主题。
- 不包含:
- 硬件/通信领域知识(→
docs/knowledge/01-03、docs/interconnect/) - 项目设计决策(→
docs/specs/) - 具体实验结果(→
docs/validation/)
- 硬件/通信领域知识(→
本章的定位:伞形容器,收纳互不相关的通用工程方法论单篇。一章一篇不尴尬,定位是"容器"而非"主题"。
名词定义
本章节所有子文档默认这些名词已定义。子文档只列本文专属的新名词,不再重复。
| 名词 | 定义 |
|---|---|
| test oracle(测试谕示) | 判定测试输出是否正确的参照机制——预先知道的标准答案、规格说明、或等价实现 |
| 无 oracle 系统 | 缺乏 test oracle 的系统(如事件驱动性能仿真器),测试时无法断言输出对错 |
| 存活性验收 | 断言只检查"程序跑完、没崩溃、输出非空"的测试反模式,会放过静默错误 |
| 静默错误 | 程序不 panic 但数据丢失或数值错误,存活性验收检测不到 |
| 静默丢帧 | 帧未被处理且无错误报出,导致仿真提前终止但测试仍绿 |
| 守恒 / 不变式测试 | 断言物理守恒量(输入 = 输出 + 在途)的测试范式,抓静默丢失 |
| 蜕变测试 | 断言输入变换后多次执行间输出关系(单调/对称/标度)的测试范式,用关系替代标准答案 |
| 蜕变关系(MR) | 蜕变测试中定义的具体规则:输入变换 + 期望的输出关系 |
| 差分测试 | 多个独立实现(如 G5 事件仿真 × Math 解析模型)对同一输入断言输出一致 |
| 属性测试 | 随机生成输入、断言高层不变式、自动缩小反例的测试范式 |
| 黄金主数据 | 锁定首次运行输出为基线、后续比对偏移即报警的回归测试(又名特征化测试) |
| 回归 | 代码改动导致已有正确行为被破坏 |
| 守恒探测器 | 累加守恒量(如 credit 消耗/归还差)并在测试结束时断言等式成立的统计机制 |
| mutation 验证 | 临时注释代码中的累加点,确认对应测试 fail,以此验证探测器不是假阳 |
| CI 回归防线 | 按时长分层的自动化回归体系:快速门(PR 必过)+ 日常巡逻(nightly) |
子文档索引(Index)
- 4.2 测试与验证 — 无 oracle 系统(事件驱动性能仿真器)的测试范式:守恒/不变式、蜕变、差分、属性、黄金主数据回归,及 G5×Math 可借鉴清单。
- 4.3 G5 测试约定 — 守恒探测器公约(4 条)+ must_use 候选公约 + Mutation 验证方法学,制度化 Phase 2A 手动 mutation 验证经验。
开放问题
- 本章后续可补的通用工程单篇:调试方法论、CI 回归策略、代码审查实践等。