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

7.0 KiB
Raw Blame History

ShowenV2 测试指南

测试环境

硬件要求

  • ARM aarch64 设备(树莓派或类似设备)
  • 显示器(用于全屏视频输出)
  • 摄像头(可选,用于测试)

软件环境

  • Linux 操作系统
  • Rust toolchain: stable-aarch64-unknown-linux-gnu
  • OpenCV 库
  • D-Bus用于 BLE
  • NetworkManager用于 WiFi

编译环境设置

export PATH="/home/showen/.rustup/toolchains/stable-aarch64-unknown-linux-gnu/bin:$PATH"
cd /home/showen/Showen/ShowenV2
cargo build --release

测试类型

1. 编译测试

# 检查编译
cargo check

# 代码质量检查
cargo clippy

# 运行单元测试
cargo test

2. 功能测试

配置文件测试

# 复制测试配置
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

视频播放测试

# 启动程序
cargo run --release -- --config configs/dog_state_machine.json

# 测试点:
# - 视频是否正常播放
# - 帧率是否达到 60fps
# - 状态机切换是否正常
# - 触发器是否响应

HTTP API 测试

# 启动程序后,在另一个终端测试 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 测试

# 使用手机蓝牙扫描设备
# 设备名应该显示为配置文件中的 device_name

# 连接后测试 GATT 服务
# - WiFi 配置特征值
# - 状态查询特征值
# - 命令发送特征值

WiFi 测试

# 通过 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

屏幕管理测试

# 程序运行时应该:
# - 阻止屏幕休眠
# - 隐藏鼠标光标
# - 全屏显示视频

# 程序停止时应该:
# - 恢复屏幕休眠
# - 显示鼠标光标

3. 性能测试

帧率测试

# 运行程序并观察日志
cargo run --release -- --config configs/dog_state_machine.json

# 检查点:
# - 视频渲染帧率 ≥ 60fps
# - 无明显卡顿
# - CPU 占用合理

内存测试

# 启动程序
cargo run --release -- --config configs/dog_state_machine.json &
PID=$!

# 监控内存占用
watch -n 1 "ps aux | grep $PID | grep -v grep"

# 检查点:
# - 内存占用 ≤ 旧版本 120%
# - 无内存泄漏(长时间运行内存稳定)

启动时间测试

# 测量启动时间
time cargo run --release -- --config configs/dog_state_machine.json

# 检查点:
# - 启动时间 ≤ 3秒

稳定性测试

# 长时间运行测试7x24小时
cargo run --release -- --config configs/dog_state_machine.json

# 检查点:
# - 连续运行 7天无崩溃
# - 内存占用稳定
# - 无资源泄漏

4. 集成测试

插件通信测试

  • 测试 HTTP → Video 消息传递
  • 测试 BLE → WiFi 消息传递
  • 测试 Broadcast 消息到所有插件

配置验证测试

  • 测试各种配置组合
  • 测试边界条件(空配置、超大值等)
  • 测试错误配置的处理

5. 对比测试

功能对比

# 运行旧版本
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

# 对比:
# - 功能是否一致
# - 性能是否相当
# - 用户体验是否改善

截图和录屏

截图工具

# 安装截图工具
sudo apt-get install scrot

# 截图
scrot screenshot.png

# 延迟 5秒后截图
scrot -d 5 screenshot.png

# 截取当前窗口
scrot -u screenshot.png

录屏工具

# 安装录屏工具
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

性能监控截图

# 安装 htop
sudo apt-get install htop

# 运行 htop 并截图
htop &
sleep 2
scrot htop_screenshot.png

测试报告模板

测试报告结构

# 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 负责人)