跳到主要内容

总览

本章节范围:跨领域的通用软件工程方法论——测试、调试、CI 回归等"做任何软件都要用"的工程实践,区别于 01-03 章的硬件/通信领域知识。 目标读者:需要把业界成熟工程方法借鉴到本项目(尤其 G5 仿真器 + Math 模型验证)的开发者。

范围与边界(Scope)

  • 包含:通用软件工程方法论的业界实践与可借鉴清单(测试范式、回归策略、调试方法等),每篇一个独立主题。
  • 不包含
    • 硬件/通信领域知识(→ docs/knowledge/01-03docs/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 回归策略、代码审查实践等。