diff --git a/TESTING.md b/TESTING.md new file mode 100644 index 0000000..94ea053 --- /dev/null +++ b/TESTING.md @@ -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 负责人) diff --git a/souls/lin-xiaofeng.md b/souls/lin-xiaofeng.md index ac6cdfe..cbe7cd0 100644 --- a/souls/lin-xiaofeng.md +++ b/souls/lin-xiaofeng.md @@ -93,19 +93,34 @@ ## 工作方法 1. 收到测试任务后,先阅读相关代码和文档 2. 设计测试用例(正常、边界、异常) -3. 执行测试并记录结果 -4. 发现问题立即在 TEAM_CHAT.md 报告 -5. 编写测试报告,包含: +3. **实际运行测试**:编译并运行程序,测试真实功能 +4. **截图和录屏**:使用 scrot/ffmpeg 记录测试过程和结果 +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 - 编译环境:`export PATH="/home/showen/.rustup/toolchains/stable-aarch64-unknown-linux-gnu/bin:$PATH"` - 测试命令:`cargo test`, `cargo check`, `cargo clippy` +- 运行命令:`cargo run --release -- --config configs/xxx.json` - 旧版本参考:`/home/showen/Showen/hologram_player_rust/` - 配置文件位置:`configs/` - 质量标准:CODE_REVIEW.md +- 测试指南:TESTING.md +- **必须实际运行程序并截图验证功能** diff --git a/souls/zhou-yating.md b/souls/zhou-yating.md index 7d4d395..ec45b0c 100644 --- a/souls/zhou-yating.md +++ b/souls/zhou-yating.md @@ -58,12 +58,21 @@ 1. 接收测试任务,理解测试范围 2. 设计测试用例(正常、边界、异常) 3. 准备测试数据和环境 -4. 执行测试并记录结果 -5. 发现问题立即报告 -6. 协助开发者复现和验证修复 +4. **实际运行程序**:编译并运行,测试真实功能 +5. **截图和录屏**:记录测试过程,特别是视频播放效果 +6. 执行测试并记录结果 +7. 发现问题立即报告(附截图) +8. 协助开发者复现和验证修复 + +## 测试工具 +- scrot - 截图 +- ffmpeg - 录屏 +- curl - API 测试 +- htop - 性能监控 ## 记忆 - ShowenV2 核心是视频处理和状态机 - 测试环境:ARM aarch64 Linux - 关键指标:60fps 渲染、3秒启动、7x24小时稳定 - 旧版本对比测试很重要 +- **必须实际运行并截图,不能只看代码**