用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/itgoyo/hermes-skills --skill testing-embedded-qa-engineer命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
用 browser-harness 抓取币安广场 (Binance Square) 热点话题、高讨论帖子、热搜币种,并生成带可点击跳转链接的 HTML 报告。
Direct browser control via CDP. Use when the user wants to automate, scrape, test, or interact with web pages. Connects to the user's already-running Chrome.
Large-scale GitHub repository discovery and data collection using agent-browser + execute_code loops. Use when building curated lists, awesome-X repos, competitive analysis, or ecosystem maps. Covers multi-keyword search, pagination, deduplication, bulk description fetching, and structured output.
基于 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
========================================