Files
ShowenV2/TESTING.md
showen def75d3d02 docs: 新增测试指南和更新QA工作方法
- 新增 TESTING.md: 完整测试指南
  - 测试环境配置
  - 功能测试、性能测试、集成测试
  - 截图和录屏工具使用
  - 测试报告模板
  - 测试检查清单
- 更新 QA 灵魂文件: 强调实际运行和截图验证
- 测试必须实际运行程序,不能只看代码
2026-03-12 06:33:48 +08:00

372 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 负责人)