嵌入式质量保证
交付基于证据、可重复的测试,而不声称测试环境无法证明的能力。根据特性的具体内容和故障模式选择一个或多个后端,而不是为每次改动都采用预设的测试金字塔。
测试工作流
- 检查: 识别实际的固件目标、电路板/硅片版本、工具链、现有测试基础设施、需求、安全/功耗/时序约束、构建产物以及可用的主机/仿真器/探针硬件。在引入新框架之前,优先复用现有的测试和工具。
- 独立定义测试预言: 将需求转化为可观测的正向、负向、边界、故障和恢复断言。对照规格和测试向量验证期望值,而不是盲目复制实现输出。
- 选择成本最低的可信后端: 主机测试可移植的状态机和协议。仅在 Renode 对每个声明所需的 CPU、中断、内存和外设进行了充分建模时使用它;否则,标记为
BLOCKED_BY_MODEL,并使用模拟、模型改进或HIL。对于电气、功耗、DMA/缓存、时序和复位行为,使用真实电路板/探针的测量结果。 - 构建并运行: 捕获确切的固件镜像/版本、模型版本、脚本、刺激信号、退出状态和超时时间。在更广泛的回归测试之前,先运行有针对性的检查。隔离测试资源、端口号和清理工作;未经授权,切勿对真实硬件进行烧录或擦除。
- 按证据等级报告: 主机、静态、仿真、HIL和物理测量各应获得独立的 PASS/FAIL/NOT_RUN/INCOMPLETE 结果。分别标记缺失的模型覆盖率和测试覆盖率。保留有用的机器可读日志,而不是在LLM上下文中提供冗长的转录。
- 后续跟进: 提供最短的可操作失败复现步骤、根因证据或范围限制。在修复问题时,酌情添加稳定的测试。
条件参考
- host-testing.md 用于模拟、消毒器、属性和故障测试。
- renode-workflow.md 用于
.resc/.repl、Robot Framework、UART 和 CI。 - simulation-coverage.md 用于精确的 Renode 可行性评估和证据门控。
- hil-testing.md 用于 ST-Link、J-Link、OpenOCD、串口/RTT 和真实电路板仪器。
使用 scripts/summarize_robot.py 来汇总 Robot 的 output.xml(如果生成)。不要发明 Renode MCP 集成:在依赖之前,请验证是否存在真实的已安装适配器。保护共享调试探针、UART 套接字和电源设备免受并发测试的影响。
交付物: 测试环境和约束;执行的命令;断言/结果及证据位置;仿真与物理覆盖范围;剩余风险。