用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/clowlove/Hermes-House --skill testing-embedded-qa-engineer命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | testing-embedded-qa-engineer |
| description | 嵌入式系统质量保障专家——精通硬件在环测试(HIL)、固件自动化测试、OTA 回归、EMC/ESD 测试规划、量产测试夹具设计、故障注入与可靠性验证。 |
| version | 1.0.0 |
| author | agency-agents-zh |
| license | MIT |
| metadata | {"hermes":{"tags":["testing"]}} |
// test_sensor_parser.c
#include "unity.h"
#include "sensor_parser.h"
void setUp(void) {}
void tearDown(void) {}
void test_parse_valid_temperature(void)
{
uint8_t raw[] = {0x01, 0x9A}; // 25.6°C
float result = parse_temperature(raw, sizeof(raw));
TEST_ASSERT_FLOAT_WITHIN(0.1f, 25.6f, result);
}
void test_parse_invalid_length_returns_nan(void)
{
uint8_t raw[] = {0x01};
float result = parse_temperature(raw, sizeof(raw));
TEST_ASSERT_TRUE(isnan(result));
}
void test_parse_overflow_clamped(void)
{
uint8_t raw[] = {0xFF, 0xFF}; // 超量程
float result = parse_temperature(raw, sizeof(raw));
TEST_ASSERT_EQUAL_FLOAT(TEMP_MAX, result);
}
import pytest
import serial
import RPi.GPIO as GPIO
import time
RESET_PIN = 17
DUT_SERIAL = "/dev/ttyUSB0"
@pytest.fixture
def dut():
"""复位设备并建立串口连接"""
GPIO.setmode(GPIO.BCM)
GPIO.setup(RESET_PIN, GPIO.OUT)
# 硬件复位
GPIO.output(RESET_PIN, GPIO.LOW)
time.sleep(0.1)
GPIO.output(RESET_PIN, GPIO.HIGH)
time.sleep(2) # 等待启动
ser = serial.Serial(DUT_SERIAL, 115200, timeout=5)
yield ser
ser.close()
GPIO.cleanup()
def test_boot_message(dut):
"""验证设备启动后输出版本信息"""
output = dut.read_until(b"READY\r\n", timeout=10)
assert b"FW_VERSION" in output
assert b"READY" in output
def test_sensor_read_command(dut):
"""发送读取指令,验证响应格式和范围"""
dut.write(b"READ_TEMP\r\n")
response = dut.readline().decode().strip()
temp = float(response.split("=")[1])
assert -40.0 <= temp <= 85.0, f"温度超范围: {temp}"
def test_power_cycle_recovery(dut):
"""验证掉电重启后数据不丢失"""
dut.write()
dut.readline()
GPIO.output(RESET_PIN, GPIO.LOW)
time.sleep()
GPIO.output(RESET_PIN, GPIO.HIGH)
time.sleep()
dut.write()
response = dut.readline().decode().strip()
response
name: Firmware CI
on: [push, pull_request]
jobs:
unit-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build and run unit tests
run: |
cd tests/unit
cmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build
ctest --test-dir build --output-on-failure
integration-test:
runs-on: [self-hosted, hil-runner]
needs: unit-test
steps:
- uses: actions/checkout@v4
- name: Flash firmware
run: |
idf.py build
idf.py -p /dev/ttyUSB0 flash
- name: Run HIL tests
run: |
pytest tests/hil/ -v --junitxml=results.xml
- uses: actions/upload-artifact@v4
with:
name: test-results
========================================
量产测试报告
产品: SENSOR-V2 SN: SN20260318001
日期: 2026-03-18 测试站: ST-03
========================================
[PASS] 供电电流 : 52mA (规格: <80mA)
[PASS] 时钟精度 : +1.2ppm (规格: ±10ppm)
[PASS] 温度传感器 : 25.3°C (参考: 25.1°C, 误差<0.5°C)
[PASS] Wi-Fi RSSI : -42dBm (规格: >-60dBm)
[PASS] BLE TX Power: +4dBm (规格: +3~+5dBm)
[PASS] Flash 自检 : CRC OK
[PASS] 序列号烧录 : SN20260318001 已写入
[PASS] 校准系数 : 已写入 NVS
========================================
结果: PASS 耗时: 18.3s
========================================