Phase 8: 测试体系 TODO¶
状态: ⬜ 待开始 预计周期: 贯穿全程 依赖阶段: 所有阶段 目标交付物: 单元测试框架、集成测试、UI 自动化、CI/CD 配置
一、阶段目标¶
核心目标¶
建立完整的测试体系,确保代码质量和系统稳定性。测试体系覆盖单元测试、集成测试、UI 自动化测试和跨平台 CI。
具体交付物¶
- [ ] 单元测试框架和测试用例
- [ ] 集成测试套件
- [ ] UI 自动化测试
- [ ] CI/CD 流水线配置
- [ ] 测试覆盖率报告
- [ ] 性能测试基准
二、测试金字塔¶
/\
/ \
/ E2E \
/ 测试 \
/________\
/ \
/ \
/ UI 自动化 \
/ 测试 \
/__________________\
/ \
/ 集成测试 \
/________________________\
/ \
/ 单元测试 \
/______________________________\
/ 70% 单元 \
/ 20% 集成 \
/ 10% UI \
/____________________________________\
三、Week 1: 基础设施¶
Day 1-2: 框架配置¶
- [ ] 配置 CMake 测试框架
- [ ]
enable_testing() - [ ] Qt6 Test 组件
- [ ] 测试子目录
- [ ] 创建测试目录结构
- [ ]
tests/unit/ - [ ]
tests/integration/ - [ ]
tests/ui/ - [ ]
tests/performance/ - [ ]
tests/mock/ - [ ]
tests/fixtures/ - [ ] 实现 Mock 系统
- [ ]
MockSystem类 - [ ] 环境变量注入
- [ ] 假数据生成
- [ ] 创建测试应用框架
- [ ]
TestApplication类 - [ ] 测试环境隔离
- [ ] 配置 CI 基础流水线
- [ ] GitHub Actions 模板
- [ ] Docker 测试镜像
Day 3-4: 测试工具开发¶
- [ ] 创建测试辅助工具
- [ ]
TestHelpers类 - [ ] 信号 spy 工具
- [ ] 对象比较工具
- [ ] 实现 Mock 数据生成器
- [ ] CPU 信息生成
- [ ] 内存信息生成
- [ ] GPU 信息生成
- [ ] 创建测试夹具
- [ ]
TestThemeBuilder - [ ]
TestWidget - [ ]
TestApp
Day 5: CI 配置¶
- [ ] 配置 GitHub Actions
- [ ] 单元测试作业
- [ ] 集成测试作业
- [ ] UI 测试作业
- [ ] 性能测试作业
- [ ] 配置测试报告
- [ ] JUnit 格式输出
- [ ] 覆盖率报告
- [ ] 测试结果上传
四、Week 2-4: 单元测试¶
HardwareProbe 测试套件¶
- [ ]
test_hardware_probe.cpp - [ ] CPU 检测测试
- [ ] IMX6ULL 识别
- [ ] RK3568 识别
- [ ] RK3588 识别
- [ ] GPU 检测测试
- [ ] DRM 设备检测
- [ ] 无 DRM 场景
- [ ] 内存检测测试
- [ ] 512MB 检测
- [ ] 1GB 检测
- [ ] 档位计算测试
- [ ] Low 档判定
- [ ] Mid 档判定
- [ ] High 档判定
- [ ] 配置覆盖测试
- [ ] 自定义脚本测试
ThemeEngine 测试套件¶
- [ ]
test_theme_engine.cpp - [ ] 主题加载测试
- [ ] 变量访问测试
- [ ] 主题继承测试
- [ ] QSS 处理测试
- [ ] 热重载测试
- [ ] 档位降级测试
AnimationManager 测试套件¶
- [ ]
test_animation_manager.cpp - [ ] 淡入淡出测试
- [ ] 滑动动画测试
- [ ] 缩放动画测试
- [ ] 旋转动画测试
- [ ] 并行动画组测试
- [ ] 串行动画组测试
- [ ] Low 档降级测试
DPIManager 测试套件¶
- [ ]
test_dpi_manager.cpp - [ ] dp 转换测试
- [ ] sp 转换测试
- [ ] 参数注入测试
- [ ] 高 DPI 测试
ConfigStore 测试套件¶
- [ ]
test_config_store.cpp - [ ] 存储测试
- [ ] 读取测试
- [ ] 层级测试
- [ ] 监听测试
- [ ] 持久化测试
Logger 测试套件¶
- [ ]
test_logger.cpp - [ ] 输出测试
- [ ] 等级过滤测试
- [ ] 标签过滤测试
- [ ] 文件输出测试
- [ ] 并发测试
五、Week 5: 集成测试¶
Base 库集成测试¶
- [ ]
test_base_integration.cpp - [ ] Hardware → Theme 集成
- [ ] Hardware → Animation 集成
- [ ] Theme → Widget 集成
- [ ] 完整 Base 栈测试
SDK 集成测试¶
- [ ]
test_sdk_integration.cpp - [ ] Widget 加载测试
- [ ] API 调用测试
- [ ] 生命周期测试
Shell 集成测试¶
- [ ]
test_shell_integration.cpp - [ ] Launcher 启动测试
- [ ] WindowManager 测试
- [ ] 应用切换测试
六、Week 6: UI 测试¶
Launcher UI 测试¶
- [ ]
test_launcher_ui.cpp - [ ] 显示测试
- [ ] 图标点击测试
- [ ] 滑动手势测试
- [ ] 应用启动测试
WindowManager UI 测试¶
- [ ]
test_window_manager_ui.cpp - [ ] 窗口创建测试
- [ ] 窗口切换测试
- [ ] 窗口关闭测试
应用切换测试¶
- [ ]
test_app_switching.cpp - [ ] 应用列表测试
- [ ] 最近应用测试
- [ ] 多任务测试
可访问性测试¶
- [ ]
test_accessibility.cpp - [ ] 焦点导航测试
- [ ] 键盘操作测试
- [ ] 屏幕阅读器测试
七、Week 7: 性能测试¶
基准测试框架¶
- [ ]
benchmarks/目录 - [ ] 基准测试模板
- [ ] 计时工具
- [ ] 内存测量
启动时间测试¶
- [ ]
test_startup_time.cpp - [ ] 冷启动测试
- [ ] 热启动测试
- [ ] 目标: < 2s
内存使用测试¶
- [ ]
test_memory_usage.cpp - [ ] 基础占用测试
- [ ] 峰值测试
- [ ] 泄漏检测
- [ ] 目标: < 100MB
动画性能测试¶
- [ ]
test_animation_fps.cpp - [ ] 帧率测试
- [ ] 目标: 稳定 60fps
- [ ] 掉帧检测
八、验收标准¶
测试覆盖率¶
- [ ] 整体代码覆盖率 > 85%
- [ ] 核心模块覆盖率 > 90%
- [ ] 关键路径覆盖率 100%
CI/CD¶
- [ ] 所有测试自动运行
- [ ] 测试失败阻止合并
- [ ] 覆盖率报告自动生成
性能¶
- [ ] 所有性能测试达标
- [ ] 无内存泄漏
- [ ] 无明显性能退化
九、文件清单¶
测试配置¶
- [ ]
tests/CMakeLists.txt - [ ]
.github/workflows/test.yml
单元测试¶
- [ ]
tests/unit/base/test_hardware_probe.cpp - [ ]
tests/unit/base/test_theme_engine.cpp - [ ]
tests/unit/base/test_animation_manager.cpp - [ ]
tests/unit/base/test_dpi_manager.cpp - [ ]
tests/unit/base/test_config_store.cpp - [ ]
tests/unit/base/test_logger.cpp - [ ]
tests/unit/base/test_input_manager.cpp
集成测试¶
- [ ]
tests/integration/test_base_integration.cpp - [ ]
tests/integration/test_sdk_integration.cpp - [ ]
tests/integration/test_shell_integration.cpp
UI 测试¶
- [ ]
tests/ui/test_launcher_ui.cpp - [ ]
tests/ui/test_window_manager_ui.cpp - [ ]
tests/ui/test_app_switching.cpp - [ ]
tests/ui/test_accessibility.cpp
性能测试¶
- [ ]
tests/performance/test_startup_time.cpp - [ ]
tests/performance/test_animation_fps.cpp - [ ]
tests/performance/test_memory_usage.cpp - [ ]
tests/performance/benchmarks/benchmark_theme_load.cpp - [ ]
tests/performance/benchmarks/benchmark_input_processing.cpp
Mock 数据¶
- [ ]
tests/mock/proc/cpuinfo_imx6ull - [ ]
tests/mock/proc/cpuinfo_rk3568 - [ ]
tests/mock/proc/cpuinfo_rk3588 - [ ]
tests/mock/proc/meminfo_512mb - [ ]
tests/mock/proc/meminfo_1gb - [ ]
tests/mock/proc/meminfo_4gb
测试夹具¶
- [ ]
tests/fixtures/test_app.h - [ ]
tests/fixtures/test_widget.h - [ ]
tests/fixtures/test_theme.h - [ ]
tests/fixtures/test_helpers.h
十、相关文档¶
- 设计文档: ../design_stage/05_phase8_testing.md
- 依赖: 所有其他阶段文档
最后更新: 2026-03-05