SuperAPI AI 工具集

hardware-tdd

编程与开发

查看项目

更新于 10-16 10:37

技能介绍

Hardware TDD 介绍

Hardware TDD 是一个用于嵌入式固件测试规划的技能,适用对象包括 Arduino、ESP32、ESP32-S3、Pico 和 Pico W。它的核心主张是:在宣称某个功能完成之前,先构建“测试阶梯”(test ladder)。纯行为往往可以在离目标(off-target)环境下测试,但电压、引脚复用、负载下的时序以及物理装配仍然需要目标硬件上的证据。

用途

该技能用于在规划嵌入式测试时提供结构化方法,帮助判断哪些内容可以离目标运行、何时使用 Wokwi 或仿真、如何编写主机假件(host fakes),以及如何在不混淆“编译证明”与“系统证明”的前提下接受一个物理硬件特性。

主要能力与流程

技能给出的流程包括:

  1. 将需求转化为可观察行为与安全不变量。
  2. 为纯 C/C++ 逻辑编写主机测试,对时间、串口、传感器和执行器使用假件,并保持硬件适配层足够薄。
  3. 仅在仿真器模型确实能表示相应外设与时序时使用 Wokwi 或其他仿真器,并记录模型局限。
  4. 使用所选工具链执行精确板卡的编译与静态检查。
  5. 创建单变量目标检查清单:断电连通性、受控上电、输入观测、输出抑制、复位/恢复以及日志。
  6. 通过物理门禁请求测量、照片或串口输出;不得从主机测试或编译日志推断目标成功。
  7. 将失败记录为证据,并保持下一次测试有边界。

测试矩阵

技能提供一个测试层级矩阵,区分各层能证明与不能证明的内容:

  • 主机层:例如去抖、状态机、报文解析,能证明确定性逻辑,不能证明引脚电压或接线。
  • 仿真层:例如被建模的传感器/LED/UART,能证明被建模的交互,不能证明稳压器、克隆板、EMI 或热行为。
  • 构建层:例如精确 FQBN/环境,能证明源码与依赖可编译,不能证明上传或运行行为。
  • 目标层:例如串口、万用表、示波器、照片,能证明观察到的硬件行为,除非加载否则不能证明现场可靠性。
  • 系统层:例如集成负载/故障用例,能证明场景下的需求,不能证明未来部署安全。

使用方式与验证约定

技能包含“反合理化”条目,用于回应常见捷径,例如“单元测试通过了”“Wokwi 与板卡一致”“草图编译通过了”“照片证明它能工作”“先标记完成以后再测”。它要求物理与系统阶段保持打开,列出模型省略的内容并在硬件上验证,分别要求上传身份与目标观测,要求照片附带板卡身份、测量背景与观察结果,并在证据存在前将循环项保持阻塞或 needs-review。

验证要求包括:每个需求映射到测试、证明阶段与产物路径;主机/仿真/构建/目标/系统结果分别标注;仅物理步骤按 embedded-project-loop 的 Physical gate 格式输出;失败与未验证用例保留在报告中。

共享输出契约

该技能使用共享 Arduino 技能契约,要求说明假设、所需工具与版本、实现步骤、按证明阶段划分的测试/证据、已知限制以及恢复/安全说明。

限制

资料未提供该技能的具体安装命令、价格、支持的平台版本或独立运行方式。