# 测试用例：M6 交付项目管理

| 项 | 值 |
|---|---|
| 对应 FSD | [M6-交付项目管理-FSD](M6-交付项目管理-FSD.md) |
| 对应 PRD | [requirements/M6](../requirements/M6-交付项目管理.md) |

> 用例按 **正常 / 边界 / 异常** 分类；具体阈值/周期以业务确认值为准（标"待业务"处）。

## 一、覆盖范围
立项准入与自动化、持续型立项 triage、Service Package 模板库与关卡链推进、派单/Kickoff、三层任务与依赖、变更控制 CR、工时/额度联动、RAG 与周期 Check-in、EAC/基线、持续型交付模式、RAID 与客户协作、交付报告/关闭/移交、Secondary 备份与缺席交接。

## 二、测试用例

### 2.1 立项准入与自动化（FR-PROJ-01/02/03/04）

**正常**

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-101 | 合同生效自动立项 | PS_Service 合同已生效、SOW 含 N 个 Service Package | 监听合同生效事件 | 按 SOW 每个 Service Package 自动建 Project（1 合同 : N 项目）、各绑该合同 Quota + 按 Package 生成 Milestone/Task 骨架 + 通知 PS Leader | P0 |
| TC-N-102 | 持续型挂既有 retainer 立项 | 客户有既有 retainer 合同 | triage 交付型立项 | 挂 retainer 建项目、不新开合同 | P0 |

**边界**

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-B-101 | Sponsored 项目型 | 虚拟 PS_Service 合同（Virtual Contract）发放 Quota | 立项 | 绑虚拟合同 Quota 正常建项目（M1 D-C11） | P1 |

**异常**

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-E-101 | 无 `remaining>0` Quota 立项 | 客户无 `remaining>0` 的 Quota | 尝试立项 | 阻断"无额度/授权来源"（阻断率=100%，D-P1） | P0 |
| TC-E-102 | 无 retainer 立项 | 持续型无既有 retainer | 尝试立项 | 阻断，转扩购审批（M9） | P0 |
| TC-E-103 | 合同未生效即建项目 | 合同待生效 | 立项 | 阻断"合同待生效" | P0 |
| TC-E-104 | 自动化建项目失败 | 事件处理异常 | 触发合同生效事件 | 重试+告警可重放；PS Leader 手工建项目兜底 | P1 |

### 2.2 持续型立项 triage（FR-PROJ-23，D-P14）

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-111 | 交付型 triage 立项 | Engagement Request 已提交 | TAM/PS Leader 判交付型 | 挂 retainer 一键立项、回填 project_id | P0 |
| TC-N-112 | 运维型并桶 | reactive 小颗粒需求 | 判运维型 | 并入通用桶（M7），不立项 | P1 |
| TC-E-111 | 工程师自行立项 | PSE 账号 | 尝试立项判定 | 阻断"须经 TAM/PS Leader triage"（工程师无立项决定权） | P0 |
| TC-E-112 | 派生超 retainer 范围 | 交付型超额度/范围 | triage | 触发扩购（新合同/续约，追加 Quota）审批（M9） | P0 |
| TC-E-113 | 通用桶异常占比超阈值 | 通用桶异常占比高 | Automations 检测 | 告警 PS Leader 复核（阈值待业务） | P1 |

### 2.3 Service Package 模板库与关卡链推进（FR-PROJ-06/09/15/16/17）

**正常**

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-121 | 关卡签署通过流转 | 关卡文档就绪、内审+客户配置 | 完成 Task→内审→客户签署 | 全部通过→关卡流转下一关卡/状态 | P0 |
| TC-N-122 | 模板实例化骨架 | Package 模板已维护 | 立项 | 按预设链生成 Milestone/Task（ldd/M6 §4） | P0 |
| TC-N-123 | 内审→客户串行签署 | signoff_config=串行 | 内审先、通过后转客户 | 内审通过方进客户验收 | P1 |

**边界**

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-B-121 | 并行签署或签 | signoff_config=并行 | 多签署人并行 | 按配置全签/或签判定通过 | P1 |
| TC-B-122 | 挂起 SLA 停表 | 在办关卡 | PM 挂起填归因 | 期间 SLA 停表、审计留痕（FR-PROJ-09） | P1 |

**异常**

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-E-121 | 关卡未签请求流转 | 未经指定签署人签署 | 请求进下一关卡 | 阻断（阻断率=100%，D-P11） | P0 |
| TC-E-122 | 签署驳回返工 | 客户/内审驳回 | 提交签署 | 关卡回退+生成返工任务+驳回意见与轮次留痕（FR-PROJ-16，留痕率=100%） | P0 |
| TC-E-123 | entry_cond 未满足 | 进入条件未达 | 进关卡 | 阻断"未满足进入条件" | P1 |
| TC-E-124 | 停滞超 SLA | 关卡停滞 | 到 SLA 阈值 | 告警 PM/PS Leader（SLA 待业务） | P1 |
| TC-E-125 | 非 PM/Leader 挂起 | PSE 账号 | 发起挂起 | 拒绝+审计 | P1 |

### 2.4 派单与 Secondary（FR-PROJ-05，D-P5/D-P15）

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-131 | 派单指派 PSE | 项目 Draft | PS Leader 派 PM/PSE + Secondary | 责任人绑定、状态转 Kickoff Scheduled | P0 |
| TC-E-131 | 缺 Secondary 派单 | 未配 secondary_owner | 派单 | 阻断+告警（缺 Secondary 阻断率=100%，D-P15） | P0 |
| TC-E-132 | Secondary=主负责人 | 选同一人 | 派单 | 阻断"不可与主负责人相同" | P0 |
| TC-E-133 | 指派不存在用户 | — | 派单填无效用户 | 阻断 | P1 |

### 2.5 三层任务与依赖（FR-PROJ-07/08/11）

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-141 | 三层任务建立 | 项目在办 | 建 Milestone→Task→Sub-task | 严格三层结构（D-P6） | P0 |
| TC-N-142 | 多视图切换 | 有任务数据 | 切列表/看板/甘特/日历 | 各视图正确呈现 | P1 |
| TC-B-141 | override 前置未完启动 | 前置未完 | 强制启动填理由 | 允许+审计留痕（FR-PROJ-07） | P1 |
| TC-E-141 | 前置未完直接启动 | 前置未完、未 override | 启动任务 | 阻断"前置未完成" | P0 |
| TC-E-142 | 依赖成环 | 制造环 | 设 depends_on | 阻断"不可成环" | P0 |
| TC-E-143 | 跨项目依赖 | 选他项目任务 | 设依赖 | 阻断"仅限本项目内"（OQ-P1） | P0 |
| TC-E-144 | 建第四层子任务 | Sub-task 下再建 | 建子任务 | 阻断"仅支持三层"（D-P6） | P1 |

### 2.6 变更控制 CR（FR-PROJ-12）

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-151 | CR 审批通过应用 | CR 已提交 | 审批通过 | 应用变更+可 re-baseline、留痕 | P0 |
| TC-E-151 | 绕过 CR 改人天/基线 | 直接改 | 尝试改范围/人天/时间 | 阻断"须走 CR 审批"（阻断率=100%） | P0 |
| TC-E-152 | CR 无差异 | 变更前后相同 | 提交 CR | 阻断"无差异" | P1 |
| TC-E-153 | CR 驳回 | 审批驳回 | 查生效 | 不生效、维持原基线、留痕 | P0 |

### 2.7 工时/额度联动（FR-PROJ-10 结算/burn）

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-161 | 工时汇总 burn | 已记 TimeEntry | 查项目 burn | =Σ 项目工时、写入项目 Man-days used、单向汇总 | P0 |
| TC-E-161 | 手改 burn/actual | 有消耗 | 尝试改汇总值 | 拒绝"不可手改" | P0 |
| TC-E-162 | 额度将耗尽 | 剩余不足 | 查额度 | 软预警、联动 CR/扩购（阈值待业务） | P1 |
| TC-B-161 | 持续型 unlimited 池 draw-down | mode=continuous、Quota source=Dedicated/amount=unlimited | 记工时 | draw-down 照记 used、remaining=∞、不预警超支（FR-PROJ-18） | P0 |

### 2.8 RAG 与周期 Check-in（FR-PROJ-19/24）

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-171 | cadence 自动生成待办 | 在办项目、到 cadence | 到点（默认每周） | 每项目建 1 条 StatusUpdate 待办派 PM（生成率=100%） | P0 |
| TC-N-172 | Check-in 独立成条 | 连续多周期 | 每周期提交 | 每周期独立一条（非单字段累积）、当周速览+历史更新流可查 | P0 |
| TC-N-173 | 自动带出 burn/里程碑 | 有工时/里程碑变化 | 打开 Check-in | mandays_week/burn/milestone_changes 自动带出、只读 | P1 |
| TC-E-171 | Check-in 逾期 | 未提交 | 到期 | 分级提醒→升级 PS Leader（触达率=100%，M9） | P0 |
| TC-E-172 | 手改自动带出项 | — | 尝试改 burn | 拒绝"自动带出不可手改" | P1 |
| TC-B-171 | 挂起期 Check-in | 项目挂起 | 到 cadence | 按配置暂停生成 | P1 |

### 2.9 EAC / 基线（FR-PROJ-20）

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-181 | 基线立项固化 | 立项 | 查基线 | schedule/effort 基线固化、版本留痕 | P1 |
| TC-N-182 | CR 后 re-baseline | CR 批准 | 触发 re-baseline | 新基线生效、旧版本留痕 | P1 |
| TC-E-181 | EAC>SOW 预警 | EAC 超 SOW（阈值待业务） | 汇总 EAC | 预警触发（触发率=100%）、联动 CR/扩购 | P0 |
| TC-E-182 | 未经 CR 改基线 | 直接改 | 改基线 | 阻断"须走 CR" | P0 |

### 2.10 持续型交付模式（FR-PROJ-18）

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-191 | 周期服务报告产出 | continuous 项目、到周期 | 出周期报告 | 客户签署、无缺报（产出率=100%，周期待业务） | P0 |
| TC-N-192 | 同 retainer 多项目 | 一 retainer | 派生多 Package | 多个跟踪项目并存（每项目一 Package） | P1 |
| TC-E-191 | 周期漏出服务报告 | 到周期未出 | 检查 | 告警催办 | P1 |

### 2.11 交付报告、关闭与移交（FR-PROJ-10/13/22）

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-201 | 正常关闭 | 全 Task Finished + 报告签署 | 关闭 | CLOSED + 结项报告 + 额度结算 + 触发 Delivery CSAT（M11） | P0 |
| TC-N-202 | 关闭后移交 | 项目 CLOSED | 移交 | 复盘入库、移交回 TAM（闭环回 M3） | P1 |
| TC-E-201 | 有未完成 Task 关闭 | 存在未完成任务 | 关闭 | 阻断"任务未完成"（阻断率=100%，D-P10） | P0 |
| TC-E-202 | 报告缺签关闭 | 报告未客户签署 | 关闭 | 阻断"交付报告未签署"（D-P9） | P0 |
| TC-E-203 | 结项报告生成失败 | 生成异常 | 关闭 | 重试+告警、阻断结算 | P1 |

### 2.12 RAID 与客户协作（FR-PROJ-14/21）

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-211 | RAID 登记跟踪 | 项目在办 | 建 RAID 指定 owner/status | 登记成功、可被 Check-in 关联 | P1 |
| TC-N-212 | 客户受限查看进度 | 外部账号 | 打开项目 | 仅见进度/里程碑、可提交资料/签署授权交付物 | P1 |
| TC-E-211 | RAID 无 owner | — | 保存 | 阻断"请指定责任人" | P1 |
| TC-E-212 | 客户越权访问 | 外部账号 A | 访问项目 B | 拒绝+审计 | P0 |

### 2.13 Secondary 与缺席交接（FR-PROJ-25，D-P15）

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-221 | Secondary 热备订阅 | 项目已配 Secondary | 立项后 | Secondary 入群/收通知/订阅周 Check-in/RAID 只读（保温覆盖率=100%） | P0 |
| TC-N-222 | 计划内缺席委托 | 主负责人休假 | 设 coverage+便签 | 待办/审批委托 Secondary（M9 FR-APR-06）生效、到期自动回退 | P0 |
| TC-N-223 | 计划外一键改派 | 主负责人不可用 | PS Leader 改派 owner | owner 改派生效 | P1 |
| TC-E-221 | coverage 缺交接便签 | 设 coverage 未填便签 | 提交 | 阻断委托生效"请填写交接便签" | P1 |
| TC-E-222 | 委托到期回退 | 委托期满 | 到期 | 系统自动回退+审计 | P0 |

## 三、覆盖率目标
- 关键路径 100%（立项自动化 / 关卡签署流转 / 派单 / 关闭结项 / Check-in 生成 / 缺席委托）。
- 异常路径 ≥ 90%（所有 TC-E-*）。
- 硬约束 100% 有对应 TC-E 覆盖：无来源立项阻断、关卡未签不流转、缺任务/缺签不可关闭、CR 未批不生效、EAC>SOW 预警、Secondary 必配、依赖仅项目内/禁环、burn 不可手改。
