项目管理模块 — 业务流程测试用例
生成日期:2026-03-27
用途:串通项目管理模块整体业务流程的端到端测试用例
说明:以一个完整的项目生命周期为主线,覆盖从基础配置 → 立项 → 执行 → 监控 → 结项的全流程
测试前提
| 项 | 要求 |
|---|---|
| 后端服务 | yudao-server 已启动(48080 端口) |
| 前端服务 | web-antd 已启动(5800 端口) |
| 测试账号 | 管理员账号(具备 project:* 全部权限) |
| 字典数据 | 项目管理相关字典已初始化(project_type、project_priority 等) |
| 菜单数据 | 项目管理菜单已初始化 |
流程一:基础配置(前置条件准备)
TC-1.1 项目分类管理
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 左侧菜单进入「项目管理 → 项目分类」 | 分类列表页正常打开 |
| 2 | 点击「新增」,填写:名称=软件开发类,排序=1 | 弹窗/表单正常显示 |
| 3 | 保存 | 提示"操作成功",列表出现新记录 |
| 4 | 点击「编辑」,修改名称为"软件研发类" | 修改后列表同步更新 |
| 5 | 再创建一个分类"咨询服务类" | 列表共2条记录 |
TC-1.2 项目模板管理
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 进入「项目管理 → 项目模板」 | 模板列表页正常打开 |
| 2 | 新增模板:名称=标准软件项目模板,选择分类=软件研发类 | 保存成功 |
| 3 | 编辑模板内容(阶段、默认任务等) | 保存成功 |
TC-1.3 项目配置
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 进入「项目管理 → 项目配置」 | 配置页正常打开 |
| 2 | 设置项目编号前缀=PJ,编号长度=8 | 保存后刷新,配置值保持 |
流程二:项目立项(项目全生命周期开始)
TC-2.1 创建项目
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 进入「项目台账」,点击「新增」 | 打开项目详情页,表单可编辑 |
| 2 | 填写基本信息:项目名称=CRM系统定制开发,项目类型=外部项目,优先级=高,分类=软件研发类 | 字段正常填写,下拉项可选 |
| 3 | 填写时间:计划开始=2026-04-01,计划结束=2026-09-30 | 日期控件正常 |
| 4 | 填写预算金额=800000 | 数值输入正常 |
| 5 | 选择项目经理=当前用户 | 人员选择控件正常 |
| 6 | 填写项目描述 | 多行文本输入正常 |
| 7 | 点击「暂存」 | 提示操作成功,项目编号自动生成(PJ开头),状态为"未开始" |
| 8 | 返回项目台账列表 | 新项目出现在列表中,各列信息正确 |
TC-2.2 项目列表功能
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 在项目台账列表搜索"CRM" | 筛选出刚创建的项目 |
| 2 | 按项目类型筛选 | 筛选结果正确 |
| 3 | 按优先级筛选 | 筛选结果正确 |
| 4 | 点击项目名称/编辑按钮 | 进入项目详情页,数据回显正确 |
流程三:项目详情 — 团队组建
TC-3.1 项目成员管理
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 进入项目详情页,点击「项目成员」Tab | 成员列表显示(项目经理应已自动加入) |
| 2 | 点击「添加成员」 | 弹窗显示,可搜索选择系统用户 |
| 3 | 选择3名用户,分别设置角色(开发、测试、UI) | 添加成功,列表显示4人(含项目经理) |
| 4 | 移除一名成员 | 确认弹窗后移除成功,列表剩余3人 |
流程四:项目详情 — 任务分解与执行
TC-4.1 创建任务(WBS分解)
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 点击「任务管理」Tab | 任务列表显示,有"新增任务"按钮 |
| 2 | 新增阶段任务:名称=需求分析阶段,类型=阶段,计划开始=2026-04-01,计划结束=2026-04-30 | 创建成功,列表显示 |
| 3 | 在"需求分析阶段"下新增子任务:名称=客户需求调研,类型=普通任务,负责人=成员A,优先级=高 | 创建成功,树形结构正确显示父子关系 |
| 4 | 继续创建子任务:需求文档编写、需求评审 | 树形结构展示3个子任务 |
| 5 | 新增第二个阶段:设计开发阶段(2026-05-01 ~ 2026-08-31) | 列表显示2个阶段 |
| 6 | 在设计开发阶段下创建子任务:系统设计、前端开发、后端开发、接口联调 | 树形结构正确 |
TC-4.2 甘特图视图
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 点击「甘特图」Tab | dhtmlx-gantt 组件渲染,左侧显示任务列表,右侧显示时间轴和甘特条 |
| 2 | 检查任务开始时间和工期 | 日期与创建时填写的一致(非1970-01-01),工期天数正确 |
| 3 | 检查阶段任务 | type=project 的任务在甘特图中显示为汇总条 |
| 4 | 拖拽任务条调整时间 | 拖拽后自动调用 API 更新,刷新后数据保持 |
| 5 | 在左侧列表点击「+」添加新任务 | 甘特图支持内联创建 |
| 6 | 创建任务依赖关系(连线) | 连线后 API 调用成功,刷新后依赖关系保持 |
TC-4.3 任务执行与进度更新
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 在任务管理 Tab 编辑"客户需求调研",修改状态为"进行中" | 更新成功 |
| 2 | 进入「我的任务」菜单页 | 当前用户被指派的任务出现在列表中 |
| 3 | 更新任务进度为100% | 任务状态自动变为"已完成" |
| 4 | 返回项目详情查看 | 项目整体进度自动重新计算 |
流程五:项目详情 — 里程碑管理
TC-5.1 里程碑定义与跟踪
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 点击「里程碑」Tab | 里程碑列表显示 |
| 2 | 新增里程碑:名称=需求基线确认,计划日期=2026-04-30,关联阶段=需求分析阶段 | 创建成功 |
| 3 | 新增里程碑:名称=系统上线,计划日期=2026-09-15 | 创建成功,列表共2条 |
| 4 | 修改里程碑状态为"已完成",填写实际完成日期 | 更新成功,状态标签变化 |
流程六:项目详情 — 工时管理
TC-6.1 工时填报
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 点击「工时记录」Tab | 工时列表显示 |
| 2 | 新增工时:选择任务=客户需求调研,工时=8小时,日期=2026-04-05,说明=完成客户访谈 | 创建成功 |
| 3 | 继续填报多条工时 | 列表显示多条记录 |
| 4 | 进入「工时管理」菜单页 | 全部工时记录分页显示,支持按项目/成员/日期筛选 |
流程七:项目详情 — 预算与成本
TC-7.1 预算录入与成本记录
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 点击「预算/成本」Tab | 费用列表显示 |
| 2 | 新增预算项:类型=预算,费用类别=人工,金额=500000,说明=研发人力成本 | 创建成功 |
| 3 | 新增预算项:类型=预算,费用类别=设备,金额=100000 | 列表显示2条预算 |
| 4 | 新增实际成本:类型=实际成本,费用类别=人工,金额=120000,日期=2026-05-31 | 创建成功 |
| 5 | 查看列表 | 预算和实际成本通过字典标签区分显示(颜色不同) |
流程八:项目详情 — 风险管理
TC-8.1 风险登记与跟踪
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 点击「风险/问题」Tab | 风险列表显示 |
| 2 | 新增风险:类型=风险,标题=核心开发人员离职风险,级别=高,责任人=项目经理 | 创建成功 |
| 3 | 新增问题:类型=问题,标题=第三方接口文档不完善,级别=中 | 创建成功 |
| 4 | 点击「解决」按钮处理一个问题 | 状态变为"已解决" |
| 5 | 删除一条风险记录 | 确认后删除成功 |
流程九:项目变更(BPM 审批流程)
TC-9.1 发起项目变更
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 进入「项目变更」菜单页 | 变更列表页正常 |
| 2 | 新增变更:选择项目=CRM系统定制开发,变更类型=范围变更,变更内容=新增报表模块 | 表单正常填写 |
| 3 | 提交审批(若已配置BPM流程) | 流程发起成功,状态变为"审批中" |
| 4 | 在项目详情的「项目变更」Tab 中查看 | 变更记录出现,显示流程状态 |
流程十:统计看板
TC-10.1 项目统计总览
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 进入「统计看板」菜单 | 看板页面正常打开 |
| 2 | 查看概览数据 | 显示:项目总数、进行中数量、已完成数量、逾期数量 |
| 3 | 查看图表区域 | 项目状态分布(饼图/柱状图)正常渲染 |
| 4 | 验证数据准确性 | 概览数字与项目台账实际数据一致 |
流程十一:项目结项
TC-11.1 项目归档
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 进入项目详情,将所有任务标记为"已完成" | 项目进度达到100% |
| 2 | 修改项目状态为"已完成"或"已归档" | 状态更新成功 |
| 3 | 返回项目台账列表 | 项目状态列显示"已完成" |
| 4 | 统计看板中"已完成"数量+1 | 数据同步更新 |
流程十二:跨模块联动
TC-12.1 项目与合同关联(如已启用合同模块)
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 创建项目时填写「合同编号」字段 | 关联合同下拉可搜索 |
| 2 | 项目详情出现「关联合同」Tab | 显示合同基本信息 |
| 3 | 从合同详情页查看关联项目 | 双向关联可追溯 |
TC-12.2 任务与工时联动
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 为某任务填报多条工时 | 填报成功 |
| 2 | 查看该任务的「实际工时」字段 | 自动汇总所有工时记录 |
| 3 | 在工时管理页面按项目维度查看 | 该项目下所有成员的工时汇总正确 |
TC-12.3 任务进度与项目进度联动
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 更新多个任务的进度百分比 | 更新成功 |
| 2 | 查看项目详情的整体进度 | 项目进度 = 所有任务进度的加权平均值,自动计算 |
| 3 | 在项目台账列表查看进度列 | 显示最新计算值 |
异常场景
TC-E1 权限控制
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 使用无 project:info:create 权限的账号访问项目台账 | 「新增」按钮不显示 |
| 2 | 通过 API 直接调用创建接口 | 返回 403 |
TC-E2 数据校验
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 创建项目时不填项目名称 | 前端提示必填 |
| 2 | 创建项目时不选项目类型 | 前端提示必填 |
| 3 | 预算金额输入负数 | 前端校验拦截或后端返回错误 |
TC-E3 重复性校验
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 创建同名项目分类 | 后端返回"分类名称已存在"错误 |
TC-E4 删除保护
| 步骤 | 操作 | 预期结果 |
|---|---|---|
| 1 | 删除有子任务的父任务 | 提示"存在子任务,无法删除" |
| 2 | 删除有关联项目的分类 | 提示"存在关联项目,无法删除"(或允许但给出警告) |
测试用例执行顺序建议
TC-1.1 → TC-1.2 → TC-1.3 ← 基础配置(一次性)
↓
TC-2.1 → TC-2.2 ← 项目创建
↓
TC-3.1 ← 团队组建
↓
TC-4.1 → TC-4.2 → TC-4.3 ← 任务管理 + 甘特图
↓
TC-5.1 ← 里程碑
↓
TC-6.1 ← 工时
↓
TC-7.1 ← 预算成本
↓
TC-8.1 ← 风险管理
↓
TC-9.1 ← 项目变更
↓
TC-10.1 ← 统计看板
↓
TC-11.1 ← 项目结项
↓
TC-12.1 → TC-12.2 → TC-12.3 ← 跨模块联动
↓
TC-E1 → TC-E2 → TC-E3 → TC-E4 ← 异常场景