docs: 新增测试指南和更新QA工作方法
- 新增 TESTING.md: 完整测试指南 - 测试环境配置 - 功能测试、性能测试、集成测试 - 截图和录屏工具使用 - 测试报告模板 - 测试检查清单 - 更新 QA 灵魂文件: 强调实际运行和截图验证 - 测试必须实际运行程序,不能只看代码
This commit is contained in:
371
TESTING.md
Normal file
371
TESTING.md
Normal file
@@ -0,0 +1,371 @@
|
|||||||
|
# ShowenV2 测试指南
|
||||||
|
|
||||||
|
## 测试环境
|
||||||
|
|
||||||
|
### 硬件要求
|
||||||
|
- ARM aarch64 设备(树莓派或类似设备)
|
||||||
|
- 显示器(用于全屏视频输出)
|
||||||
|
- 摄像头(可选,用于测试)
|
||||||
|
|
||||||
|
### 软件环境
|
||||||
|
- Linux 操作系统
|
||||||
|
- Rust toolchain: stable-aarch64-unknown-linux-gnu
|
||||||
|
- OpenCV 库
|
||||||
|
- D-Bus(用于 BLE)
|
||||||
|
- NetworkManager(用于 WiFi)
|
||||||
|
|
||||||
|
### 编译环境设置
|
||||||
|
```bash
|
||||||
|
export PATH="/home/showen/.rustup/toolchains/stable-aarch64-unknown-linux-gnu/bin:$PATH"
|
||||||
|
cd /home/showen/Showen/ShowenV2
|
||||||
|
cargo build --release
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 测试类型
|
||||||
|
|
||||||
|
### 1. 编译测试
|
||||||
|
```bash
|
||||||
|
# 检查编译
|
||||||
|
cargo check
|
||||||
|
|
||||||
|
# 代码质量检查
|
||||||
|
cargo clippy
|
||||||
|
|
||||||
|
# 运行单元测试
|
||||||
|
cargo test
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 功能测试
|
||||||
|
|
||||||
|
#### 配置文件测试
|
||||||
|
```bash
|
||||||
|
# 复制测试配置
|
||||||
|
cp /home/showen/Showen/hologram_player_rust/dog_state_machine.json configs/
|
||||||
|
cp /home/showen/Showen/hologram_player_rust/cat_state_machine.json configs/
|
||||||
|
|
||||||
|
# 验证配置加载
|
||||||
|
cargo run --release -- --config configs/dog_state_machine.json --validate
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 视频播放测试
|
||||||
|
```bash
|
||||||
|
# 启动程序
|
||||||
|
cargo run --release -- --config configs/dog_state_machine.json
|
||||||
|
|
||||||
|
# 测试点:
|
||||||
|
# - 视频是否正常播放
|
||||||
|
# - 帧率是否达到 60fps
|
||||||
|
# - 状态机切换是否正常
|
||||||
|
# - 触发器是否响应
|
||||||
|
```
|
||||||
|
|
||||||
|
#### HTTP API 测试
|
||||||
|
```bash
|
||||||
|
# 启动程序后,在另一个终端测试 API
|
||||||
|
|
||||||
|
# 获取状态
|
||||||
|
curl http://localhost:8080/api/status
|
||||||
|
|
||||||
|
# 播放控制
|
||||||
|
curl -X POST http://localhost:8080/api/play
|
||||||
|
curl -X POST http://localhost:8080/api/pause
|
||||||
|
curl -X POST http://localhost:8080/api/next
|
||||||
|
curl -X POST http://localhost:8080/api/previous
|
||||||
|
|
||||||
|
# 跳转到指定视频
|
||||||
|
curl -X POST http://localhost:8080/api/goto/0
|
||||||
|
|
||||||
|
# 触发状态切换
|
||||||
|
curl -X POST http://localhost:8080/api/trigger/happy
|
||||||
|
|
||||||
|
# 场景切换
|
||||||
|
curl -X POST http://localhost:8080/api/scene/0
|
||||||
|
|
||||||
|
# 获取配置
|
||||||
|
curl http://localhost:8080/api/config
|
||||||
|
|
||||||
|
# 访问 Web UI
|
||||||
|
curl http://localhost:8080/
|
||||||
|
```
|
||||||
|
|
||||||
|
#### BLE 测试
|
||||||
|
```bash
|
||||||
|
# 使用手机蓝牙扫描设备
|
||||||
|
# 设备名应该显示为配置文件中的 device_name
|
||||||
|
|
||||||
|
# 连接后测试 GATT 服务
|
||||||
|
# - WiFi 配置特征值
|
||||||
|
# - 状态查询特征值
|
||||||
|
# - 命令发送特征值
|
||||||
|
```
|
||||||
|
|
||||||
|
#### WiFi 测试
|
||||||
|
```bash
|
||||||
|
# 通过 BLE 或 HTTP API 测试 WiFi 功能
|
||||||
|
|
||||||
|
# 扫描 WiFi
|
||||||
|
curl -X POST http://localhost:8080/api/wifi/scan
|
||||||
|
|
||||||
|
# 连接 WiFi
|
||||||
|
curl -X POST http://localhost:8080/api/wifi/connect \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"ssid": "YourSSID", "password": "YourPassword"}'
|
||||||
|
|
||||||
|
# 断开 WiFi
|
||||||
|
curl -X POST http://localhost:8080/api/wifi/disconnect
|
||||||
|
|
||||||
|
# 开启热点
|
||||||
|
curl -X POST http://localhost:8080/api/wifi/hotspot/start
|
||||||
|
|
||||||
|
# 关闭热点
|
||||||
|
curl -X POST http://localhost:8080/api/wifi/hotspot/stop
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 屏幕管理测试
|
||||||
|
```bash
|
||||||
|
# 程序运行时应该:
|
||||||
|
# - 阻止屏幕休眠
|
||||||
|
# - 隐藏鼠标光标
|
||||||
|
# - 全屏显示视频
|
||||||
|
|
||||||
|
# 程序停止时应该:
|
||||||
|
# - 恢复屏幕休眠
|
||||||
|
# - 显示鼠标光标
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 性能测试
|
||||||
|
|
||||||
|
#### 帧率测试
|
||||||
|
```bash
|
||||||
|
# 运行程序并观察日志
|
||||||
|
cargo run --release -- --config configs/dog_state_machine.json
|
||||||
|
|
||||||
|
# 检查点:
|
||||||
|
# - 视频渲染帧率 ≥ 60fps
|
||||||
|
# - 无明显卡顿
|
||||||
|
# - CPU 占用合理
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 内存测试
|
||||||
|
```bash
|
||||||
|
# 启动程序
|
||||||
|
cargo run --release -- --config configs/dog_state_machine.json &
|
||||||
|
PID=$!
|
||||||
|
|
||||||
|
# 监控内存占用
|
||||||
|
watch -n 1 "ps aux | grep $PID | grep -v grep"
|
||||||
|
|
||||||
|
# 检查点:
|
||||||
|
# - 内存占用 ≤ 旧版本 120%
|
||||||
|
# - 无内存泄漏(长时间运行内存稳定)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 启动时间测试
|
||||||
|
```bash
|
||||||
|
# 测量启动时间
|
||||||
|
time cargo run --release -- --config configs/dog_state_machine.json
|
||||||
|
|
||||||
|
# 检查点:
|
||||||
|
# - 启动时间 ≤ 3秒
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 稳定性测试
|
||||||
|
```bash
|
||||||
|
# 长时间运行测试(7x24小时)
|
||||||
|
cargo run --release -- --config configs/dog_state_machine.json
|
||||||
|
|
||||||
|
# 检查点:
|
||||||
|
# - 连续运行 7天无崩溃
|
||||||
|
# - 内存占用稳定
|
||||||
|
# - 无资源泄漏
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. 集成测试
|
||||||
|
|
||||||
|
#### 插件通信测试
|
||||||
|
- 测试 HTTP → Video 消息传递
|
||||||
|
- 测试 BLE → WiFi 消息传递
|
||||||
|
- 测试 Broadcast 消息到所有插件
|
||||||
|
|
||||||
|
#### 配置验证测试
|
||||||
|
- 测试各种配置组合
|
||||||
|
- 测试边界条件(空配置、超大值等)
|
||||||
|
- 测试错误配置的处理
|
||||||
|
|
||||||
|
### 5. 对比测试
|
||||||
|
|
||||||
|
#### 功能对比
|
||||||
|
```bash
|
||||||
|
# 运行旧版本
|
||||||
|
cd /home/showen/Showen/hologram_player_rust
|
||||||
|
cargo run --release -- --config dog_state_machine.json
|
||||||
|
|
||||||
|
# 运行新版本
|
||||||
|
cd /home/showen/Showen/ShowenV2
|
||||||
|
cargo run --release -- --config configs/dog_state_machine.json
|
||||||
|
|
||||||
|
# 对比:
|
||||||
|
# - 功能是否一致
|
||||||
|
# - 性能是否相当
|
||||||
|
# - 用户体验是否改善
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 截图和录屏
|
||||||
|
|
||||||
|
### 截图工具
|
||||||
|
```bash
|
||||||
|
# 安装截图工具
|
||||||
|
sudo apt-get install scrot
|
||||||
|
|
||||||
|
# 截图
|
||||||
|
scrot screenshot.png
|
||||||
|
|
||||||
|
# 延迟 5秒后截图
|
||||||
|
scrot -d 5 screenshot.png
|
||||||
|
|
||||||
|
# 截取当前窗口
|
||||||
|
scrot -u screenshot.png
|
||||||
|
```
|
||||||
|
|
||||||
|
### 录屏工具
|
||||||
|
```bash
|
||||||
|
# 安装录屏工具
|
||||||
|
sudo apt-get install ffmpeg
|
||||||
|
|
||||||
|
# 录制屏幕
|
||||||
|
ffmpeg -f x11grab -s 1920x1080 -i :0.0 -r 30 output.mp4
|
||||||
|
|
||||||
|
# 录制 30秒后停止
|
||||||
|
ffmpeg -f x11grab -s 1920x1080 -i :0.0 -r 30 -t 30 output.mp4
|
||||||
|
```
|
||||||
|
|
||||||
|
### 性能监控截图
|
||||||
|
```bash
|
||||||
|
# 安装 htop
|
||||||
|
sudo apt-get install htop
|
||||||
|
|
||||||
|
# 运行 htop 并截图
|
||||||
|
htop &
|
||||||
|
sleep 2
|
||||||
|
scrot htop_screenshot.png
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 测试报告模板
|
||||||
|
|
||||||
|
### 测试报告结构
|
||||||
|
```markdown
|
||||||
|
# ShowenV2 测试报告
|
||||||
|
|
||||||
|
## 测试信息
|
||||||
|
- 测试人员:[姓名]
|
||||||
|
- 测试日期:[日期]
|
||||||
|
- 测试版本:[commit hash]
|
||||||
|
- 测试环境:[硬件/软件信息]
|
||||||
|
|
||||||
|
## 测试结果概览
|
||||||
|
- 编译测试:✅/❌
|
||||||
|
- 功能测试:✅/❌
|
||||||
|
- 性能测试:✅/❌
|
||||||
|
- 集成测试:✅/❌
|
||||||
|
- 对比测试:✅/❌
|
||||||
|
|
||||||
|
## 详细测试结果
|
||||||
|
|
||||||
|
### 编译测试
|
||||||
|
- cargo check: ✅
|
||||||
|
- cargo clippy: ⚠️ 7个 warning
|
||||||
|
- cargo test: ✅
|
||||||
|
|
||||||
|
### 功能测试
|
||||||
|
#### 视频播放
|
||||||
|
- 基本播放:✅
|
||||||
|
- 状态切换:✅
|
||||||
|
- 触发器:✅
|
||||||
|
- 截图:[附件]
|
||||||
|
|
||||||
|
#### HTTP API
|
||||||
|
- 状态查询:✅
|
||||||
|
- 播放控制:✅
|
||||||
|
- Web UI:✅
|
||||||
|
- 截图:[附件]
|
||||||
|
|
||||||
|
#### BLE
|
||||||
|
- 设备发现:✅
|
||||||
|
- GATT 服务:✅
|
||||||
|
- WiFi 配置:✅
|
||||||
|
|
||||||
|
#### WiFi
|
||||||
|
- 扫描:✅
|
||||||
|
- 连接:✅
|
||||||
|
- 热点:✅
|
||||||
|
|
||||||
|
### 性能测试
|
||||||
|
- 帧率:60fps ✅
|
||||||
|
- 内存占用:150MB ✅
|
||||||
|
- 启动时间:2.5秒 ✅
|
||||||
|
- 稳定性:运行 24小时无问题 ✅
|
||||||
|
|
||||||
|
### 发现的问题
|
||||||
|
1. [问题描述]
|
||||||
|
- 严重程度:P0/P1/P2/P3
|
||||||
|
- 复现步骤:[步骤]
|
||||||
|
- 截图:[附件]
|
||||||
|
- 建议:[修复建议]
|
||||||
|
|
||||||
|
## 质量评估
|
||||||
|
- 整体质量:优秀/良好/一般/较差
|
||||||
|
- 是否可以发布:是/否
|
||||||
|
- 风险提示:[风险说明]
|
||||||
|
|
||||||
|
## 建议
|
||||||
|
- [改进建议]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 测试检查清单
|
||||||
|
|
||||||
|
### 编译检查
|
||||||
|
- [ ] cargo check 通过
|
||||||
|
- [ ] cargo clippy 零 warning
|
||||||
|
- [ ] cargo test 通过
|
||||||
|
- [ ] cargo build --release 成功
|
||||||
|
|
||||||
|
### 功能检查
|
||||||
|
- [ ] 配置文件加载正确
|
||||||
|
- [ ] 视频播放正常
|
||||||
|
- [ ] 状态机切换正确
|
||||||
|
- [ ] HTTP API 全部可用
|
||||||
|
- [ ] BLE 连接正常
|
||||||
|
- [ ] WiFi 功能正常
|
||||||
|
- [ ] 屏幕管理正常
|
||||||
|
|
||||||
|
### 性能检查
|
||||||
|
- [ ] 帧率 ≥ 60fps
|
||||||
|
- [ ] 内存占用合理
|
||||||
|
- [ ] 启动时间 ≤ 3秒
|
||||||
|
- [ ] 长时间运行稳定
|
||||||
|
|
||||||
|
### 质量检查
|
||||||
|
- [ ] 无崩溃
|
||||||
|
- [ ] 无内存泄漏
|
||||||
|
- [ ] 无资源泄漏
|
||||||
|
- [ ] 错误处理完善
|
||||||
|
- [ ] 日志输出合理
|
||||||
|
|
||||||
|
### 对比检查
|
||||||
|
- [ ] 功能对齐旧版本
|
||||||
|
- [ ] 性能不低于旧版本
|
||||||
|
- [ ] 用户体验改善
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**文档版本**: v1.0
|
||||||
|
**最后更新**: 2026-03-12
|
||||||
|
**负责人**: 林晓峰 (QA 负责人)
|
||||||
@@ -93,19 +93,34 @@
|
|||||||
## 工作方法
|
## 工作方法
|
||||||
1. 收到测试任务后,先阅读相关代码和文档
|
1. 收到测试任务后,先阅读相关代码和文档
|
||||||
2. 设计测试用例(正常、边界、异常)
|
2. 设计测试用例(正常、边界、异常)
|
||||||
3. 执行测试并记录结果
|
3. **实际运行测试**:编译并运行程序,测试真实功能
|
||||||
4. 发现问题立即在 TEAM_CHAT.md 报告
|
4. **截图和录屏**:使用 scrot/ffmpeg 记录测试过程和结果
|
||||||
5. 编写测试报告,包含:
|
5. 执行测试并记录结果
|
||||||
|
6. 发现问题立即在 TEAM_CHAT.md 报告
|
||||||
|
7. 编写测试报告,包含:
|
||||||
- 测试覆盖范围
|
- 测试覆盖范围
|
||||||
- 发现的问题清单
|
- 发现的问题清单(附截图)
|
||||||
|
- 性能数据(帧率、内存、启动时间)
|
||||||
- 质量评估
|
- 质量评估
|
||||||
- 建议和风险提示
|
- 建议和风险提示
|
||||||
6. 跟踪 bug 修复并回归测试
|
8. 跟踪 bug 修复并回归测试
|
||||||
|
|
||||||
|
## 测试工具
|
||||||
|
- cargo check/clippy/test - 编译和代码质量检查
|
||||||
|
- scrot - 截图工具
|
||||||
|
- ffmpeg - 录屏工具
|
||||||
|
- htop - 性能监控
|
||||||
|
- curl - HTTP API 测试
|
||||||
|
- bluetoothctl - BLE 测试
|
||||||
|
- nmcli - WiFi 测试
|
||||||
|
|
||||||
## 记忆
|
## 记忆
|
||||||
- ShowenV2 使用 Rust + OpenCV
|
- ShowenV2 使用 Rust + OpenCV
|
||||||
- 编译环境:`export PATH="/home/showen/.rustup/toolchains/stable-aarch64-unknown-linux-gnu/bin:$PATH"`
|
- 编译环境:`export PATH="/home/showen/.rustup/toolchains/stable-aarch64-unknown-linux-gnu/bin:$PATH"`
|
||||||
- 测试命令:`cargo test`, `cargo check`, `cargo clippy`
|
- 测试命令:`cargo test`, `cargo check`, `cargo clippy`
|
||||||
|
- 运行命令:`cargo run --release -- --config configs/xxx.json`
|
||||||
- 旧版本参考:`/home/showen/Showen/hologram_player_rust/`
|
- 旧版本参考:`/home/showen/Showen/hologram_player_rust/`
|
||||||
- 配置文件位置:`configs/`
|
- 配置文件位置:`configs/`
|
||||||
- 质量标准:CODE_REVIEW.md
|
- 质量标准:CODE_REVIEW.md
|
||||||
|
- 测试指南:TESTING.md
|
||||||
|
- **必须实际运行程序并截图验证功能**
|
||||||
|
|||||||
@@ -58,12 +58,21 @@
|
|||||||
1. 接收测试任务,理解测试范围
|
1. 接收测试任务,理解测试范围
|
||||||
2. 设计测试用例(正常、边界、异常)
|
2. 设计测试用例(正常、边界、异常)
|
||||||
3. 准备测试数据和环境
|
3. 准备测试数据和环境
|
||||||
4. 执行测试并记录结果
|
4. **实际运行程序**:编译并运行,测试真实功能
|
||||||
5. 发现问题立即报告
|
5. **截图和录屏**:记录测试过程,特别是视频播放效果
|
||||||
6. 协助开发者复现和验证修复
|
6. 执行测试并记录结果
|
||||||
|
7. 发现问题立即报告(附截图)
|
||||||
|
8. 协助开发者复现和验证修复
|
||||||
|
|
||||||
|
## 测试工具
|
||||||
|
- scrot - 截图
|
||||||
|
- ffmpeg - 录屏
|
||||||
|
- curl - API 测试
|
||||||
|
- htop - 性能监控
|
||||||
|
|
||||||
## 记忆
|
## 记忆
|
||||||
- ShowenV2 核心是视频处理和状态机
|
- ShowenV2 核心是视频处理和状态机
|
||||||
- 测试环境:ARM aarch64 Linux
|
- 测试环境:ARM aarch64 Linux
|
||||||
- 关键指标:60fps 渲染、3秒启动、7x24小时稳定
|
- 关键指标:60fps 渲染、3秒启动、7x24小时稳定
|
||||||
- 旧版本对比测试很重要
|
- 旧版本对比测试很重要
|
||||||
|
- **必须实际运行并截图,不能只看代码**
|
||||||
|
|||||||
Reference in New Issue
Block a user