Files
novalon-manage-system/QUALITY_IMPROVEMENT_PLAN.md
T
张翔 e2ad1331cc feat: 添加测试框架和覆盖率报告功能
feat(测试): 新增Playwright和Vitest测试配置
feat(测试): 添加测试覆盖率报告生成功能
feat(测试): 实现前后端测试脚本集成

fix(测试): 修复测试密码不匹配问题
fix(测试): 修正URL等待策略
fix(测试): 调整错误消息选择器

refactor(测试): 重构测试目录结构
refactor(测试): 优化测试用例组织方式

docs: 更新测试报告文档
docs: 添加测试覆盖率报告模板

ci: 添加Docker测试环境配置
ci: 实现测试自动化脚本

chore: 更新依赖版本
chore: 添加测试相关配置文件
2026-03-25 09:03:37 +08:00

9.1 KiB
Raw Blame History

Novalon管理系统质量提升迭代计划

📋 项目状态评估总结

已完成项

  • 功能完整性: (5/5) - 所有核心功能已实现
  • 前后端对接: (5/5) - 完全使用真实数据对接
  • E2E测试: (5/5) - 30+个测试文件,覆盖全面
  • API集成测试: (5/5) - 18个测试文件,覆盖全面

⚠️ 需改进项

  • 单元测试:☆☆☆☆ (1/5) - 完全缺失
  • 测试覆盖率:☆☆☆☆ (1/5) - 无覆盖率监控
  • CI/CD集成:☆☆☆ (2/5) - 缺少自动化流水线
  • 测试效率:☆☆ (3/5) - E2E测试执行时间较长

🎯 迭代目标

阶段一:补充单元测试(优先级:高)

  • 前端组件单元测试
  • 后端Service层单元测试
  • 工具函数单元测试

阶段二:提升测试覆盖率(优先级:高)

  • 集成代码覆盖率工具
  • 设置覆盖率目标(80%
  • 添加覆盖率门禁

阶段三:优化测试执行效率(优先级:中)

  • 并行执行测试
  • 测试数据隔离
  • 减少E2E测试执行时间

阶段四:完善CI/CD流水线(优先级:高)

  • 自动化测试执行
  • 自动化测试报告
  • 质量门禁

阶段五:增强测试稳定性(优先级:中)

  • 减少flaky测试
  • 增加重试机制
  • 优化等待策略

📝 详细任务清单

阶段一:补充单元测试

任务1.1:配置前端单元测试环境

  • 检查现有Vitest配置
  • 安装必要的测试依赖(@vue/test-utils, jsdom
  • 配置测试覆盖率工具(@vitest/coverage-v8
  • 创建测试工具函数和fixtures
  • 编写单元测试示例文档

任务1.2:编写前端组件单元测试

  • Login组件单元测试
  • UserManagement组件单元测试
  • RoleManagement组件单元测试
  • MenuManagement组件单元测试
  • SystemConfig组件单元测试
  • DictionaryManagement组件单元测试
  • FileManagement组件单元测试
  • Notification组件单元测试
  • Audit组件单元测试(OperationLog, LoginLog, ExceptionLog

任务1.3:编写前端工具函数单元测试

  • request.ts单元测试
  • errorHandler.ts单元测试
  • API客户端单元测试
  • 状态管理工具单元测试

任务1.4:配置后端单元测试环境

  • 检查现有JUnit配置
  • 配置Mockito依赖
  • 配置测试覆盖率工具(JaCoCo
  • 创建测试基类和工具类
  • 编写单元测试示例文档

任务1.5:编写后端Service层单元测试

  • SysUserService单元测试
  • SysRoleService单元测试
  • SysMenuService单元测试
  • SysDictService单元测试
  • SysConfigService单元测试
  • SysNoticeService单元测试
  • SysFileService单元测试
  • SysAuditService单元测试

任务1.6:编写后端Handler层单元测试

  • SysAuthHandler单元测试
  • SysUserHandler单元测试
  • SysRoleHandler单元测试
  • MenuHandler单元测试
  • SysDictHandler单元测试
  • SysConfigHandler单元测试
  • SysNoticeHandler单元测试
  • SysFileHandler单元测试
  • OperationLogHandler单元测试

阶段二:提升测试覆盖率

任务2.1:配置前端测试覆盖率

  • 配置@vitest/coverage-v8
  • 设置覆盖率报告格式(HTML, JSON, LCOV
  • 配置覆盖率排除规则
  • 集成到package.json脚本

任务2.2:配置后端测试覆盖率

  • 配置JaCoCo Maven插件
  • 设置覆盖率报告格式(HTML, XML)
  • 配置覆盖率排除规则
  • 集成到Maven构建生命周期

任务2.3:设置覆盖率目标

  • 前端覆盖率目标:80%
  • 后端覆盖率目标:80%
  • 分模块覆盖率目标
  • 覆盖率阈值配置

任务2.4:生成覆盖率报告

  • 运行前端测试生成覆盖率报告
  • 运行后端测试生成覆盖率报告
  • 合并覆盖率报告
  • 分析覆盖率数据

任务2.5:添加覆盖率门禁

  • 前端覆盖率门禁配置
  • 后端覆盖率门禁配置
  • 失败阈值设置
  • 门禁触发机制

阶段三:优化测试执行效率

任务3.1:优化E2E测试执行

  • 分析当前E2E测试执行时间
  • 识别慢速测试用例
  • 优化等待策略
  • 减少不必要的等待

任务3.2:实现测试并行执行

  • 配置Playwright并行执行
  • 配置Pytest并行执行(pytest-xdist
  • 优化测试数据隔离
  • 调整并行度配置

任务3.3:优化测试数据管理

  • 实现测试数据清理机制
  • 实现测试数据回滚机制
  • 优化测试数据生成策略
  • 减少测试数据依赖

任务3.4:优化API测试执行

  • 批量执行API测试
  • 减少API测试等待时间
  • 优化HTTP客户端配置
  • 实现测试结果缓存

阶段四:完善CI/CD流水线

任务4.1:配置GitHub Actions

  • 创建GitHub Actions工作流文件
  • 配置环境变量和密钥
  • 配置Docker环境
  • 配置数据库服务

任务4.2:集成前端测试到CI/CD

  • 配置前端单元测试执行
  • 配置前端E2E测试执行
  • 配置前端覆盖率报告
  • 配置前端质量门禁

任务4.3:集成后端测试到CI/CD

  • 配置后端单元测试执行
  • 配置后端集成测试执行
  • 配置后端覆盖率报告
  • 配置后端质量门禁

任务4.4:集成API测试到CI/CD

  • 配置API测试执行
  • 配置API测试报告
  • 配置API测试质量门禁

任务4.5:配置自动化测试报告

  • 配置Allure测试报告
  • 配置测试报告通知
  • 配置测试趋势分析
  • 配置测试覆盖率趋势

任务4.6:配置质量门禁

  • 单元测试通过率门禁
  • 集成测试通过率门禁
  • E2E测试通过率门禁
  • 覆盖率门禁
  • 代码质量门禁(ESLint, SpotBugs

阶段五:增强测试稳定性

任务5.1:识别和修复Flaky测试

  • 运行测试多次识别flaky测试
  • 分析flaky测试原因
  • 修复flaky测试
  • 添加重试机制

任务5.2:优化等待策略

  • 统一等待策略
  • 使用显式等待替代隐式等待
  • 优化网络请求等待
  • 优化DOM元素等待

任务5.3:增强测试数据隔离

  • 每个测试用例独立数据
  • 测试前数据准备
  • 测试后数据清理
  • 实现数据快照机制

任务5.4:优化错误处理

  • 统一错误处理策略
  • 改进错误消息
  • 添加调试信息
  • 优化日志记录

🚀 执行顺序

批次1:单元测试基础设施(任务1.1, 1.4)

  • 配置前端和后端单元测试环境
  • 创建测试工具和示例文档

批次2:核心组件单元测试(任务1.2, 1.3)

  • 编写前端核心组件单元测试
  • 编写前端工具函数单元测试

批次3:后端Service层单元测试(任务1.5)

  • 编写所有Service层单元测试

批次4:后端Handler层单元测试(任务1.6)

  • 编写所有Handler层单元测试

批次5:测试覆盖率配置(任务2.1, 2.2)

  • 配置前端和后端测试覆盖率工具

批次6:覆盖率目标和报告(任务2.3, 2.4)

  • 设置覆盖率目标
  • 生成覆盖率报告

批次7:覆盖率门禁(任务2.5

  • 添加覆盖率门禁

批次8:测试执行效率优化(任务3.1, 3.2)

  • 优化E2E测试执行
  • 实现测试并行执行

批次9:测试数据管理优化(任务3.3, 3.4)

  • 优化测试数据管理
  • 优化API测试执行

批次10:CI/CD基础设施(任务4.1)

  • 配置GitHub Actions

批次11:测试集成到CI/CD(任务4.2, 4.3

  • 集成前端和后端测试到CI/CD

批次12API测试和报告(任务4.4, 4.5)

  • 集成API测试到CI/CD
  • 配置自动化测试报告

批次13:质量门禁(任务4.6

  • 配置质量门禁

批次14:测试稳定性(任务5.1, 5.2)

  • 识别和修复Flaky测试
  • 优化等待策略

批次15:数据隔离和错误处理(任务5.3, 5.4)

  • 增强测试数据隔离
  • 优化错误处理

📊 成功标准

阶段一成功标准

  • 前端单元测试覆盖率 > 60%
  • 后端单元测试覆盖率 > 60%
  • 所有核心组件都有单元测试
  • 所有Service层都有单元测试

阶段二成功标准

  • 前端测试覆盖率 > 80%
  • 后端测试覆盖率 > 80%
  • 覆盖率报告可查看
  • 覆盖率门禁生效

阶段三成功标准

  • E2E测试执行时间减少30%
  • 测试可并行执行
  • 测试数据完全隔离

阶段四成功标准

  • CI/CD流水线正常运行
  • 所有测试自动执行
  • 测试报告自动生成
  • 质量门禁生效

阶段五成功标准

  • Flaky测试 < 5%
  • 测试稳定性 > 95%
  • 错误处理完善

📝 备注

  • 每个批次执行完成后需要汇报进度
  • 遇到阻塞问题立即停止并寻求帮助
  • 保持代码质量和测试质量
  • 遵循项目编码规范
  • 及时更新文档

创建时间: 2026-03-24
创建者: 张翔(全栈质量保障与研发效能工程师)
计划版本: v1.0