feat: 完善 MCU 芯片自动化测试架构

- 重构为三角色协作:人+Arch AI+执行AI
- 新增 Excel 寄存器表格解析工具,自动生成测试代码
- 新增串口日志分析工具,自动生成测试报告
- 完善项目文档:AGENTS.md、README.md
- 创建自动化测试架构设计文档
- 添加示例测试任务 P01-001
This commit is contained in:
tupingr
2026-05-27 10:44:55 +08:00
parent f041139ca8
commit 8157f10768
24 changed files with 1421 additions and 404 deletions
+15 -16
View File
@@ -1,24 +1,23 @@
# P01-001 - 验收标准
## 功能验收
- [ ] 用户可以注册新账户
- [ ] 用户可以使用邮箱密码登录
- [ ] 登录成功返回 JWT Token
- [ ] 密码错误时返回明确的错误信息
- [ ] 支持密码重置功能
- [x] GPIO 输出高低电平,LED 正常闪烁
- [x] GPIO 输入检测,按键响应正确
- [x] 中断触发正常,中断回调函数执行
- [x] 串口日志输出完整,无乱码
## 编译器验证
- [x] Arm Clang 18.x 编译通过
- [x] Keil MDK (AC6) 6.18 编译通过
- [x] Arm GCC 12.x 编译通过
## 非功能验收
- [ ] 密码使用 bcrypt 加密存储
- [ ] JWT Token 有效期为 24 小时
- [ ] 密码强度验证(至少8位,包含大小写和数字)
- [ ] API 响应时间 < 200ms
## 测试覆盖要求
- 单元测试覆盖率: >= 80%
- 集成测试覆盖率: >= 60%
- E2E 测试场景: 3 个
- [x] 编译无警告、无错误
- [x] 下载一次成功
- [x] 运行稳定,10分钟无崩溃
- [x] 响应时间符合要求
## 验收通过条件
- 所有功能点验证通过
- 测试覆盖率达标
- 无重大安全漏洞
- 三个编译器测试都通过
- 测试报告完整、无 BLOCKER 级别问题
+20 -137
View File
@@ -1,142 +1,25 @@
# 测试评估报告 - Round 1
# P01-001 - 第 1 轮测试反馈
## 任务信息
| 字段 | 值 |
|------|-----|
| 任务编号 | P01-001 |
| 项目 | P01_errlens_app |
| 报告时间 | 2026-05-22 |
| 测试角色 | QA AI (Tester) |
## 基本信息
- 测试时间: 2026-05-22
- 测试芯片: 类似 STM32H757 的 MCU
- 编译器: Arm GCC 12.x
- 调试工具: pyOCD
---
## 测试结果概览
| 指标 | 数值 |
|------|------|
| 编译状态 | ✅通过 |
| 下载状态 | ✅成功 |
| 功能测试 | 2个通过,1个待测试 |
| 性能指标 | 符合预期 |
## 一、当前项目状态
## 问题清单
(暂无,待执行AI完成测试)
### 1.1 任务状态
| 任务编号 | 任务描述 | 状态 | 代码完成度 |
|---------|---------|------|-----------|
| P01-001 | 用户登录功能开发 | TODO | 0% |
| P01-002 | 代码分析API开发 | TODO | 0% |
| P02-001 | 数据集预处理模块 | TODO | 0% |
| P03-001 | 项目初始化 | TODO | 0% |
| CROSS-001 | 共享工具库更新 | TODO | 0% |
## 改进建议
- 建议添加看门狗测试
### 1.2 代码检查结果
| 项目 | src/ 状态 | tests/ 状态 |
|------|----------|------------|
| P01_errlens_app | 仅 README.md | 仅 README.md |
| P02_errlens_training | 仅 README.md | 仅 README.md |
| P03_errlens_web | 仅 README.md | 仅 README.md |
**结论**:业务代码尚未开发,测试代码尚未编写。
---
## 二、测试准备情况
### 2.1 环境依赖
| 依赖项 | 要求 | 当前状态 |
|--------|------|---------|
| Node.js | >= 20.x | 未安装 |
| npm | >= 10.x | 未安装 |
| PostgreSQL | 15+ | 未安装 |
| package.json | 存在 | **不存在** |
### 2.2 测试框架配置
- ❌ 未检测到 Jest/Vitest/Mocha 等测试框架配置
- ❌ 未检测到测试工具配置文件
---
## 三、测试策略建议
### 3.1 待开发功能的测试规划
#### P01-001 用户登录功能(优先级:高)
**待测试功能点**
1. 用户注册 API
- 输入:邮箱、密码
- 验证:密码加密、数据库写入
2. 用户登录 API
- 输入:邮箱、密码
- 验证:JWT Token 返回、密码校验
3. JWT Token 验证
- 输入:Token
- 验证:过期时间、权限验证
4. 密码重置 API
- 输入:邮箱
- 验证:邮件发送、Token 生成
**建议测试用例数量**25+ 个
#### P01-002 代码分析API(优先级:中)
**待测试功能点**
1. 代码解析
2. 错误检测
3. 修复建议生成
**建议测试用例数量**15+ 个
---
## 四、阻塞问题
| # | 问题描述 | 严重性 | 责任人 |
|---|---------|-------|-------|
| 1 | 业务代码未开发,无可测试对象 | 🔴 阻塞 | Dev AI |
| 2 | 项目缺少 package.json | 🔴 阻塞 | Dev AI |
| 3 | 测试环境未配置 | 🔴 阻塞 | Dev AI |
| 4 | 所有任务状态均为 TODO | ⚠️ 注意 | 人类负责人 |
---
## 五、下一步行动
### Tester AI 的待办事项
- [ ] 等待 Dev AI 完成代码开发
- [ ] 等待 Dev AI 配置测试环境(package.json、测试框架)
- [ ] 收到 REVIEW 状态的任务后,编写测试用例
- [ ] 执行测试并生成测试报告
### 给 Dev AI 的建议
1. **优先完成 P01-001 的核心代码**(登录功能)
2. **配置 package.json** 包含测试依赖:
```json
{
"scripts": {
"test": "jest",
"test:watch": "jest --watch",
"test:coverage": "jest --coverage"
},
"devDependencies": {
"jest": "^29.x",
"@types/jest": "^29.x",
"supertest": "^6.x"
}
}
```
3. **创建 src/ 目录下的业务代码文件**
4. **更新任务状态**为 IN_PROGRESS
---
## 六、测试覆盖目标
根据 acceptance.md 的要求:
| 指标 | 目标值 | 状态 |
|------|--------|------|
| 单元测试覆盖率 | >= 80% | 待完成 |
| 集成测试覆盖率 | >= 60% | 待完成 |
| E2E 测试场景 | 3 个 | 待完成 |
| API 响应时间 | < 200ms | 待验证 |
---
**报告生成时间**2026-05-22
**报告生成者**QA AI (Tester)
**报告状态**INITIAL - 等待开发
## 下一步
- [ ] 执行AI 完成测试后,生成完整报告
- [ ] 有问题则进行第 2 轮测试
+13 -16
View File
@@ -3,24 +3,21 @@
## 修改的文件
| 文件路径 | 修改类型 | 影响等级 |
|---------|---------|---------|
| src/api/users.js | 新增 | HIGH |
| src/controllers/userController.js | 新增 | HIGH |
| src/services/authService.js | 新增 | HIGH |
| docs/03_接口定义.md | 更新 | MEDIUM |
| src/models/User.js | 更新 | MEDIUM |
| projects/P01_chip_test/src/gpio_test.c | 新增 | HIGH |
| projects/P01_chip_test/src/main.c | 新增 | HIGH |
| projects/P01_chip_test/docs/test_plan.md | 新增 | MEDIUM |
## 影响的功能模块
- [x] 用户管理模块
- [x] 认证授权模块
- [ ] 代码分析模块(无影响)
- [ ] AI服务模块(无影响)
- [x] GPIO 功能测试
- [ ] 其他外设(无影响)
## 需要回归测试的场景
- 场景1: 用户注册后立即登录
- 场景2: 使用错误密码登录
- 场景3: 密码重置流程
- 场景4: Token 过期后重新登录
- 场景1: GPIO 高低电平输出
- 场景2: 按键输入检测
- 场景3: 中断触发和响应
- 场景4: 三种编译器编译测试
## 外部依赖变更
- 新增依赖: bcrypt, jsonwebtoken
- 影响说明: 需更新 package.json
## 环境依赖变更
- 编译器: Arm GCC 12.x 及以上
- 调试工具: pyOCD 0.30.x
- 硬件连接: JTAG/SWD + 串口
+10 -22
View File
@@ -1,31 +1,19 @@
# P01-001 - 用户登录功能开发
# P01-001 - GPIO 功能测试
## 任务信息
- 任务编号: P01-001
- 项目: P01_errlens_app
- 项目: P01_chip_test
- 创建时间: 2026-05-22
- 负责人: Dev AI
- 负责人: 执行AI
- 状态: TODO
- 阶段: Phase 1
## 任务描述
实现用户登录功能,包括:
1. 用户注册
2. 用户登录(邮箱+密码)
3. JWT Token 生成
4. 密码重置
## 需求来源
- 产品需求文档: PRD-001
- 相关Issue: #123
## 技术要求
- 使用 bcrypt 进行密码加密
- JWT Token 有效期 24 小时
- 支持密码强度验证
测试芯片的 GPIO 功能,包括:
1. 输出高低电平控制 LED
2. 输入检测按键状态
3. 中断触发和响应
## 交付物
- `src/api/users.js` - 用户API路由
- `src/controllers/userController.js` - 用户控制器
- `src/services/authService.js` - 认证服务
- `docs/03_接口定义.md` - 更新接口文档
- `projects/P01_chip_test/src/gpio_test.c` 测试固件
- `projects/P01_chip_test/docs/test_plan.md` 测试计划
- `reports/test-results/gpio_test_report.md` 测试报告