# test-case-manager **Repository Path**: dequal/test-case-manager ## Basic Information - **Project Name**: test-case-manager - **Description**: ai生成的测试用例管理平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2025-04-07 - **Last Updated**: 2025-08-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # test-case-manager 测试案例管理平台 测试案例管理平台背景: 用于测试团队,基于测试工单,管理测试案例、评审记录、缺陷记录的平台,提高测试效率,归档测试痕迹。 ## 系统架构 系统主要包含以下几个模块,它们之间的关系如下: ### 核心模块 - **工单**:系统的核心实体,与评审、测试案例和bug形成一对多关系 - **评审**:记录评审过程和结果 - **测试案例**:记录测试方法和结果 - **bug**:记录缺陷信息和解决方案 ### 辅助模块 - **汇总页面**:提供数据汇总视图 - **用户表**:管理不同角色的用户(测试、开发、产品等) - **工作台**:用户操作的主界面 ## 功能需求 ### 工单管理 1. 新增/修改:工单表(来源jira,前期手动新增) + 评审表初始化 2. 查询功能 3. 同步jira (自动同步、手动触发同步) 4. 通过工单标题匹配用户定色(比如:测试、开发、产品) ### 评审管理 1. 评审结果状态变更 2. 查询功能 3. 跟踪评审人数据:N个评审人,记录评审人记录 ### 测试案例管理 1. 增删改,导入excel(模板) 2. 查询,导出 (参考导入模板) 3. 测试结果状态变更 ### bug管理 1. 增删改 2. 查询 3. 状态扭转 4. 如果修改成已解决状态时,则需要选择解决方案,填写备注,值接参考jira工单模式 ## 项目解读 ### 项目概述 测试案例管理平台是一个为测试团队设计的系统,基于测试工单管理测试案例、评审记录和缺陷记录,旨在提高测试效率并归档测试痕迹。项目采用Java 17和Spring Boot 3构建,使用MyBatisPlus作为ORM框架,MySql作为数据库,Redis作为缓存,Sa-Token用于认证授权。 ### 系统架构详解 - **工单模块**:系统的中心实体,与评审、测试案例和bug形成一对多关系 - **评审模块**:记录测试案例评审过程和结果 - **测试案例模块**:存储和管理测试方法、步骤和结果 - **Bug模块**:记录缺陷信息和解决方案 - **用户管理**:管理测试团队中不同角色的用户 - **工作台**:用户日常工作的主界面 - **汇总模块**:提供数据统计和视图 ### 数据库设计 系统包含8个核心表: - **T_USER**:用户信息 - **T_ROLE**:角色定义 - **T_USER_ROLE**:用户与角色关联 - **T_WORK_ORDER**:工单信息 - **T_REVIEW**:评审记录 - **T_TEST_CASE**:测试案例 - **T_BUG**:Bug记录 - **T_ACTIVITY**:系统活动日志 ### 代码结构 遵循多层架构: - **endpoint层**:接口定义,处理请求和响应 - **application层**:业务逻辑实现,包含服务和管理器 - **domain层**:领域对象和数据访问 - **common层**:通用工具、常量和异常处理 - **config层**:系统配置 ### 待办事项(TO DO)列表 #### 基础架构 1. 创建项目基本骨架和Maven依赖配置 2. 完成数据库连接配置和事务管理 3. 实现Sa-Token认证授权集成 4. 设置Redis缓存配置 5. 集成MyBatisPlus并配置通用填充功能 #### 领域模型 1. 创建核心表对应的DO对象 2. 实现各表对应的Mapper接口 3. 设计并实现实体间的关联关系 #### 业务功能 1. **工单管理** - 实现工单新增/修改功能 - 开发工单查询和筛选功能 - 实现JIRA同步功能(自动/手动) - 开发工单标题关键词分析功能 2. **评审管理** - 实现评审结果状态管理 - 开发评审查询功能 - 实现多评审人追踪功能 3. **测试案例管理** - 实现测试案例CRUD功能 - 开发Excel导入/导出功能 - 实现测试结果状态管理 4. **Bug管理** - 实现Bug CRUD功能 - 开发Bug状态流转机制 - 实现解决方案记录功能 #### 接口开发 1. 设计并实现各模块的RESTful接口 2. 编写统一的请求和响应处理 3. 实现接口参数校验 #### 前端开发 1. 设计并实现用户界面 2. 开发工作台和各功能模块页面 3. 实现数据统计和可视化展示 #### 系统优化 1. 实现缓存策略提高性能 2. 设计索引优化数据库查询 3. 完善日志记录和异常处理 4. 添加数据导出和备份功能 #### 测试与部署 1. 编写单元测试和集成测试 2. 准备部署文档和脚本 3. 设计系统监控和告警机制 ## 参数说明 ### 一、工单详情 | 参数名称 | 类型 | 必填项 | 描述 | 示例 | | ------- | ---- | ----- | ---- | ---- | | 项目 | 字符串 | 是 | 用于标识测试所属项目 | "电商系统测试项目" | | 工单号 | 字符串 | 是 | 关联工单编号 | "GD-001" | | 工单描述 | 字符串 | 是 | 最多展示 15 位,超出部分隐藏 | "优化页面加载速度" | | 截止日期 | 字符串 | 是 | 设定任务截止时间,格式为 "YYYY-MM-DD" | "2025-04-10" | | 测试完成情况 | 布尔值 | 是 | 以用例全部执行为完成判断标准,true 表示完成,false 表示未完成 | true | | 用例评审情况 | 布尔值 | 是 | 用例全部评审视为完成,true 表示完成,false 表示未完成 | false | | 评审人 | 字符串(多个以逗号分隔) | 否 | 参与评审的人员 | "张三,李四" | | 更新人 | 字符串 | 否 | 最后修改该记录的人员 | "王五" | | 更新时间 | 字符串 | 否 | 记录更新的时间,格式为 "YYYY-MM-DD HH:MM:SS" | "2025-03-24 14:30:00" | ### 二、测试案例页面 | 参数名称 | 类型 | 必填项 | 描述 | 示例 | | ------- | ---- | ----- | ---- | ---- | | 用例 ID | 整数 | 是 | 每个用例集合的自增 ID | 1, 2, 3... | | 用例等级 | 字符串 | 是 | P1、P2、P3 ,默认为 P2 | P2 | | 所属模块 | 字符串 | 否 | 与 jira 关联的工单号,或者属于哪个项目(可搜索,可手动填写) | "JIRA-123","智能评估项目" | | 功能点 | 字符串 | 是 | 执行的用验证的功能 | "商品搜索功能" | | 前置条件 | 字符串 | 否 | 执行用例前需满足的条件,可根据实际情况输入 | "已连接网络" | | 测骤描述 | 数组对象 | 否 | 包括用例步骤、预期结果,可添加多个步骤,根据测试设计填写 | [{"步骤":"输入关键词","预期结果":"显示相关商品列表"}] | | 预期结果 | 字符串 | 否 | 该条测试案例执行后达到的效果 | "显示正确的搜索结果" | | 测试结果 | 字符串 | 用例执行后必填 | 用例执行的结果(PASS ,FAIL,NT,BLOCK),默认为空 | "PASS" | | 备注 | 字符串 | 否 | 可补充说明相关信息 | "搜索结果按销量排序" | | 附件 | 文件类型 | 否 | 可按需添加相关附件 | "搜索界面截图.png" | ### 三、Bug基本信息 | 参数名称 | 类型 | 必填项 | 描述 | 示例 | | ------- | ---- | ----- | ---- | ---- | | 问题 ID | 未知(推测为数值或特定编号形式) | 是 | 问题的唯一标识 | BUG-001 | | jira 编号 | 字符串 | 否 | 与 Jira 关联的编号,用于在 Jira 系统中定位问题 | JIRA-456 | | 模块 | 字符串 | 否 | 问题所属的功能模块 | "用户登录" | | 问题描述 | 字符串 | 是 | 对问题的详细描述,可包含重现步骤等信息 | "登录页面在移动端显示异常" | | 发现人 | 字符串 | 是 | 发现该问题的人员 | "李四" | | 优先级 | 字符串 | 否 | 处理问题的优先程度 | "高" | | 发现日期 | 日期类型 | 是 | 创建问题时间,创建时带入 | "2023-04-20" | | 出现概率 | 字符串 | 否 | 问题出现的可能性 | "中" | | 开发责任人 | 字符串 | 是 | 负责处理该问题的开发人员 | "张三" | | 状态 | 字符串 | 是 | 问题当前所处的状态,默认为未处理 | "处理中" | | 回归结果 | 字符串 | 当问题状态为已解决等需要回归测试时必填 | 对修复后的问题进行回归测试的结果,默认为空 | "通过" | | 回归结果备注 | 字符串 | 否 | 如果回归结果为未通过需要填写 | "修复不完全,仍有边界问题" | | 截止日期 | 日期类型 | 是 | 处理问题的时间期限 | "2023-04-30" | | 问题解决日期 | 日期类型 | 是 | 问题点位已解决取系统时间 | "2023-04-25" | | 解决方案 | 字符串 | 除了已解决外 | 设计如此,重复 Bug,外部原因,已解决,无法重现,延期处理,不予解决 | "已解决" | | 解决方案备注 | 字符串 | 否 | 当问题解决状态飞已解决需要进行备注 | "前端组件重构解决" | ### 四、评审页面 | 参数名称 | 类型 | 必填项 | 描述 | 示例 | | ------- | ---- | ----- | ---- | ---- | | jira 工单号 | 字符串 | 是 | 与 jira 关联的工单编号 | JIRA-1001 | | 角色 | 字符串 | 是 | 可取值为产品、测试、开发 | 测试 | | 评审结果 | 字符串 | 是 | 用例评审后的结果,如通过、不通过等 | 通过 | | 备注 | 字符串 | 否 | 对相关内容的补充说明 | 需补充测试数据 | | 更新人 | 字符串 | 否 | 最后修改记录的人员 | 张工 | | 更新时间 | 字符串 | 否 | 记录更新的时间,格式为 "YYYY-MM-DD HH:MM:SS" | 2025-03-24 16:30:00 | | 操作 | 字符串 | 否 | 可进行的操作,如增加、修改等 | 修改 | ## 项目启动与配置 ### 环境要求 - JDK 17+ - MySQL 5.7+ - Redis ### 数据库初始化 项目包含两个SQL脚本文件: 1. `schema.sql`: 用于创建数据库表结构 2. `init/data.sql`: 用于初始化测试数据 执行以下步骤完成数据库初始化: ```bash # 登录MySQL mysql -u用户名 -p密码 # 创建数据库 CREATE DATABASE test_case_manager CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; # 选择数据库 USE test_case_manager; # 执行schema.sql脚本创建表结构 source /path/to/schema.sql; # 执行data.sql脚本初始化测试数据 source /path/to/init/data.sql; ``` ### 应用配置 在 `application.yml` 中配置数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/test_case_manager?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai username: 你的用户名 password: 你的密码 driver-class-name: com.mysql.cj.jdbc.Driver ``` ### 项目启动 ```bash # 使用Maven打包 mvn clean package -DskipTests # 运行应用 java -jar target/test-case-manager-*.jar # 开发模式启动 mvn spring-boot:run ``` ### 访问系统 启动成功后,通过浏览器访问: ``` http://localhost:8080 ``` ### 默认管理员账号 系统初始化后,可使用以下默认管理员账号登录: - 用户名:admin - 密码:admin