关联场景:
../user-scenarios/04-teacher.md。对应 e2e:../e2e/roles/teacher/*.spec.js、../e2e/assessment-order-flow.spec.js、../e2e/dan-report-flow.spec.js、../e2e/ai-plan-task-flow.spec.js。
| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-T-01 | T-1 | 认证/双角色 | 规划师 | P0 | 权限 | 已分配规划师账号 | 1. 密码登录 2. 切回家长视角 3. 访问无关家庭数据 | 进入仪表板;可切回自身家长视角;越权访问无关家庭被拒 | AuthController;规划师可切回家长 |
e2e/roles/teacher/login.spec.js |
| TC-T-02 | T-2 | 家庭绑定 | 规划师 | P1 | 功能 | 家长已生成邀请码 | 1. 输入邀请码绑定 2. 查看「我的家庭」 | 家庭出现在列表,可见成员;无效码提示失败;重复绑定幂等 | FamilyInviteController |
e2e/roles/teacher/family-binding.spec.js |
| TC-T-03 | T-3 | 健康报告 | 规划师 | P0 | 功能 | 已绑定家庭与孩子 B | 1. 上传募极生物 PDF+选 B 2. 三阶段:上传→解析预览→确认入库 | 报告进入孩子档案;健康列表可见;识别失败进草稿/未知聚类 | 报告上传解析;规划师代传 | e2e/roles/teacher/dan-report-flow.spec.js |
| TC-T-04 | T-3 | 报告审核 | 规划师 | P1 | 功能 | 有报告草稿(如 id=28) | 1. 打开审核队列草稿 2. 确认 | 草稿确认入库,健康报告列表可见;确认前可取消不入库 | 报告审核 | — |
| TC-T-05 | T-4 | 方案管理 | 规划师 | P0 | 功能 | 有 generated/reviewed/active 方案 | 1. 打开方案管理页 | 列表正常渲染(无白屏);函数不报未定义 | 方案管理;黑盒回归项 | e2e/admin-panel.spec.js(参考) |
| TC-T-06 | T-4 | 方案审核 | 规划师 | P0 | 功能 | 家长已提交方案(generated) | 1. 对方案 A 点「批准」 | 状态 generated→reviewed | 方案状态机 | — |
| TC-T-07 | T-5 | 方案激活 | 规划师 | P0 | 功能 | 方案已 reviewed | 1. 点「激活」→确认 2. 激活后查看孩子任务 | 状态 reviewed→active;生成引导任务+模板任务;孩子 B 出现方案启动任务 | 激活拆任务 | e2e/ai-plan-task-flow.spec.js |
| TC-T-08 | T-5 | 方案激活·幂等 | 规划师 | P0 | 异常 | 方案已 active | 1. 对已激活方案再次激活 | 返回状态异常提示,不重复生成任务(幂等) | 幂等约束(黑盒回归) | — |
| TC-T-09 | T-6 | 任务审核 | 规划师 | P1 | 功能 | 孩子已提交任务 | 1. 打开家庭任务列表 2. 审核 | 通过→孩子得积分;驳回→退回重做;越权审核非绑定家庭被拒 | TaskController |
— |
| TC-T-10 | T-7 | 测评录入 | 规划师 | P0 | 功能 | 家长已支付测评订单(待安排→已预约) | 1. 打开测评订单 2. 录入各维度得分 3. 保存 | 结果可见;触发规则引擎自动生成方案(generated);必填缺失→校验拦截;重复录入覆盖 | AssessmentAppointmentController/DanAssessmentController |
e2e/assessment-order-flow.spec.js |
| TC-T-11 | T-8 | 成长计划 | 规划师 | P1 | 功能 | 已绑定家庭 | 1. 打开「成长计划」页 | 列表显示自己创建的计划(childName/状态/时间);不再 400 | GrowthPlanController;黑盒回归 |
e2e/guide-family-list.spec.js(参考) |
| TC-T-12 | T-8 | 套餐 | 规划师 | P1 | 功能 | 套餐素材就绪 | 1. 创建「专注力提升套餐」含任务项 2. 提交审核 3. 审核通过后购买 | 上架前提交审核;审核通过后可被市场购买;任务项为空→校验拦截 | GuidePackageController |
— |
confirm/{id} → 返回「您不是被指派的测评师」,status 不变(TC-DV-05)。confirm → 当前仍置 1(非法回退)【缺陷】,期望失败(TC-DV-02)。cancel/{id} 不接收调用者身份,任何登录用户凭 id 即可取消他人预约【高危缺陷】;期望增加归属校验(TC-DV-01)。test-cases/deep-dive-assessment-appointment.md。| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-T-13 | SC-T-13 | 数据隔离 | 规划师 | P1 | 权限 | 已绑定家庭 | 1. 列家庭/成员/报告 2. 越权查非绑定家庭 | 非绑定家庭统一 403;仅见绑定家庭数据 | 控制器内 role 检查 | — |
| TC-T-14 | SC-T-14 | 方案编辑 | 规划师 | P1 | 功能 | 方案存在 | 1. 编辑板块/任务项 2. 保存 | 编辑后状态标记已改;保存生效 | 方案管理 | — |
| TC-T-15 | SC-T-15 | 套餐任务 | 规划师 | P1 | 功能 | 套餐存在 | 1. 增删任务项 2. 重算 | 空套餐拦截上架;重算后任务项正确 | GuidePackageController |
— |
| TC-T-16 | SC-T-16 | 健康总览 | 规划师 | P1 | 功能 | 已绑定家庭 | 1. 家庭仪表板→能量/报告/方案汇总 | 数据缺失项降级展示不 500 | 仪表板 | — |
| TC-T-17 | SC-T-17 | 计划进度 | 规划师 | P1 | 功能 | 计划存在 | 1. 计划→任务完成度 | 进度计算准确;与任务状态一致 | GrowthPlanController |
— |
| TC-T-18 | SC-T-18 | 批量任务 | 规划师 | P1 | 功能 | 多孩子成员 | 1. 选多成员→批量建任务 | 部分失败不影响其他成员;各自独立落库 | TaskController |
— |
| TC-T-19 | SC-T-19 | 消息推送 | 规划师 | P1 | 功能 | 已绑定客户 | 1. 发消息/提醒→客户收到 | 客户端收到;免打扰设置生效 | 消息服务 | — |
| TC-T-20 | SC-T-20 | 退出/切换 | 规划师 | P1 | 功能 | 已登录 | 1. 退出→清 token 2. 切回家长 | 退出清缓存;切回家长视角正常 | AuthController |
— |
| TC-T-21 | SC-T-21 | 报告对比 | 规划师 | P1 | 功能 | 多份报告 | 1. 多报告对比→差异标注 | 报告类型一致才可比对;差异清晰标注 | 报告管理 | — |
| TC-T-22 | SC-T-22 | 方案归档 | 规划师 | P2 | 功能 | 方案完成 | 1. 归档→只读 | 归档后方案仅可读,不可再编辑/激活 | 方案管理 | — |
| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-T-23 | T-23 | 报告代传/report-proxy | 规划师 | P1 | 功能 | 已登录(默认 规划师);相关前置数据就绪 | 1. 按场景流程执行:上传 PDF+选孩子 → 解析 → 关联孩子档案 2. 观察结果 | 达成目标:帮客户上传;边界:非绑定家庭拒;识别失败进草稿 | 报告代传/report-proxy | — |
| TC-T-24 | T-24 | 规划师绑定 | 规划师 | P1 | 功能 | 已登录(默认 规划师);相关前置数据就绪 | 1. 按场景流程执行:解绑 → 重绑新家庭 2. 观察结果 | 达成目标:更换绑定;边界:在途方案/预约处理;非绑定家庭不可操作 | 规划师绑定 | — |
| TC-T-25 | T-25 | 舌诊情绪识别 | 规划师 | P1 | 功能 | 已登录(默认 规划师);相关前置数据就绪 | 1. 按场景流程执行:上传/录入 → 关联报告 2. 观察结果 | 达成目标:录入识别结果;边界:识别失败回退人工 | 舌诊情绪识别 | — |
| TC-T-26 | T-26 | 精准营养 | 规划师 | P1 | 功能 | 已登录(默认 规划师);相关前置数据就绪 | 1. 按场景流程执行:设目标 → 生成方案 2. 观察结果 | 达成目标:基于营养目标出方案;边界:目标非法拦截 | 精准营养 | — |
| TC-T-27 | T-27 | 家庭天盘 | 规划师 | P1 | 功能 | 已登录(默认 规划师);相关前置数据就绪 | 1. 按场景流程执行:打开天盘 → 解读 2. 观察结果 | 达成目标:给家庭看聚合视图并解读;边界:仅绑定家庭可见 | 家庭天盘 | — |
| TC-T-28 | T-28 | 内容安全 | 规划师 | P1 | 功能 | 已登录(默认 规划师);相关前置数据就绪 | 1. 按场景流程执行:AI 生成 → 敏感词/合规检查 → 放行/驳回 2. 观察结果 | 达成目标:复核 AI 敏感内容;边界:命中即拦截 | 内容安全 | — |
| TC-T-29 | T-29 | 数据导出(GDPR) | 规划师 | P1 | 功能 | 已登录(默认 规划师);相关前置数据就绪 | 1. 按场景流程执行:申请 → 生成包 → 下载 2. 观察结果 | 达成目标:导出客户数据;边界:授权/脱敏;越权拒 | 数据导出(GDPR) | — |
| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-T-01-E | T-1 | 认证/双角色 | 规划师 | P2 | 异常 | 已分配规划师账号 | 1. 未登录/过期 token/非法切换 2. 观察拦截 | token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 | AuthController;规划师可切回家长 |
— |
| TC-T-02-E | T-2 | 家庭绑定 | 规划师 | P2 | 异常 | 家长已生成邀请码 | 1. 输入非法参数/网络中断/请求超时 2. 观察降级 | 系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 | FamilyInviteController |
— |
| TC-T-03-E | T-3 | 健康报告 | 规划师 | P2 | 异常 | 已绑定家庭与孩子 B | 1. 上传损坏/非募极/超大/格式不符文件或触发解析超时 2. 观察系统处理 | 识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 | 报告上传解析;规划师代传 | — |
| TC-T-04-E | T-3 | 报告审核 | 规划师 | P2 | 异常 | 有报告草稿(如 id=28) | 1. 上传损坏/非募极/超大/格式不符文件或触发解析超时 2. 观察系统处理 | 识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 | 报告审核 | — |
| TC-T-05-E | T-4 | 方案管理 | 规划师 | P2 | 异常 | 有 generated/reviewed/active 方案 | 1. 制造 AI/方案生成超时或不可用;制造重复激活/确认/购买 2. 观察兜底与幂等 | LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 | 方案管理;黑盒回归项 | — |
| TC-T-06-E | T-4 | 方案审核 | 规划师 | P2 | 异常 | 家长已提交方案(generated) | 1. 制造 AI/方案生成超时或不可用;制造重复激活/确认/购买 2. 观察兜底与幂等 | LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 | 方案状态机 | — |
| TC-T-07-E | T-5 | 方案激活 | 规划师 | P2 | 异常 | 方案已 reviewed | 1. 制造 AI/方案生成超时或不可用;制造重复激活/确认/购买 2. 观察兜底与幂等 | LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 | 激活拆任务 | — |
| TC-T-08-E | T-5 | 方案激活·幂等 | 规划师 | P2 | 异常 | 方案已 active | 1. 制造 AI/方案生成超时或不可用;制造重复激活/确认/购买 2. 观察兜底与幂等 | LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 | 幂等约束(黑盒回归) | — |
| TC-T-09-E | T-6 | 任务审核 | 规划师 | P2 | 异常 | 孩子已提交任务 | 1. 重复提交/并发/超期/驳回后重做 2. 观察处理 | 重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 | TaskController |
— |
| TC-T-10-E | T-7 | 测评录入 | 规划师 | P2 | 异常 | 家长已支付测评订单(待安排→已预约) | 1. 额度不足/过期;并发同一 quota+memberId 重复提交 2. 观察拦截与幂等 | 额度不足/过期直接报错不落预约;并发重复提交被拒(幂等);状态机守卫非法回退 | AssessmentAppointmentController/DanAssessmentController |
— |
| TC-T-11-E | T-8 | 成长计划 | 规划师 | P2 | 异常 | 已绑定家庭 | 1. 重复提交/并发/超期/驳回后重做 2. 观察处理 | 重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 | GrowthPlanController;黑盒回归 |
— |
| TC-T-12-E | T-8 | 套餐 | 规划师 | P2 | 异常 | 套餐素材就绪 | 1. 制造 AI/方案生成超时或不可用;制造重复激活/确认/购买 2. 观察兜底与幂等 | LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 | GuidePackageController |
— |
| TC-T-13-E | SC-T-13 | 数据隔离 | 规划师 | P2 | 异常 | 已绑定家庭 | 1. 输入非法参数/网络中断/请求超时 2. 观察降级 | 系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 | 控制器内 role 检查 | — |
| TC-T-14-E | SC-T-14 | 方案编辑 | 规划师 | P2 | 异常 | 方案存在 | 1. 制造 AI/方案生成超时或不可用;制造重复激活/确认/购买 2. 观察兜底与幂等 | LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 | 方案管理 | — |
| TC-T-15-E | SC-T-15 | 套餐任务 | 规划师 | P2 | 异常 | 套餐存在 | 1. 制造 AI/方案生成超时或不可用;制造重复激活/确认/购买 2. 观察兜底与幂等 | LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 | GuidePackageController |
— |
| TC-T-16-E | SC-T-16 | 健康总览 | 规划师 | P2 | 异常 | 已绑定家庭 | 1. 输入非法参数/网络中断/请求超时 2. 观察降级 | 系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 | 仪表板 | — |
| TC-T-17-E | SC-T-17 | 计划进度 | 规划师 | P2 | 异常 | 计划存在 | 1. 重复提交/并发/超期/驳回后重做 2. 观察处理 | 重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 | GrowthPlanController |
— |
| TC-T-18-E | SC-T-18 | 批量任务 | 规划师 | P2 | 异常 | 多孩子成员 | 1. 重复提交/并发/超期/驳回后重做 2. 观察处理 | 重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 | TaskController |
— |
| TC-T-19-E | SC-T-19 | 消息推送 | 规划师 | P2 | 异常 | 已绑定客户 | 1. 输入非法参数/网络中断/请求超时 2. 观察降级 | 系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 | 消息服务 | — |
| TC-T-20-E | SC-T-20 | 退出/切换 | 规划师 | P2 | 异常 | 已登录 | 1. 未登录/过期 token/非法切换 2. 观察拦截 | token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 | AuthController |
— |
| TC-T-21-E | SC-T-21 | 报告对比 | 规划师 | P2 | 异常 | 多份报告 | 1. 上传损坏/非募极/超大/格式不符文件或触发解析超时 2. 观察系统处理 | 识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 | 报告管理 | — |
| TC-T-22-E | SC-T-22 | 方案归档 | 规划师 | P3 | 异常 | 方案完成 | 1. 制造 AI/方案生成超时或不可用;制造重复激活/确认/购买 2. 观察兜底与幂等 | LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 | 方案管理 | — |
| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-T-23-E | T-23 | 报告代传/report-proxy | 规划师 | P2 | 异常 | 已登录(默认 规划师);相关前置数据就绪 | 1. 上传损坏/非募极/超大/格式不符文件或触发解析超时 2. 观察处理 | 识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 | 报告代传/report-proxy | — |
| TC-T-24-E | T-24 | 规划师绑定 | 规划师 | P2 | 异常 | 已登录(默认 规划师);相关前置数据就绪 | 1. 上传损坏/非募极/超大/格式不符文件或触发解析超时 2. 观察处理 | 识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 | 规划师绑定 | — |
| TC-T-25-E | T-25 | 舌诊情绪识别 | 规划师 | P2 | 异常 | 已登录(默认 规划师);相关前置数据就绪 | 1. 上传损坏/非募极/超大/格式不符文件或触发解析超时 2. 观察处理 | 识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 | 舌诊情绪识别 | — |
| TC-T-26-E | T-26 | 精准营养 | 规划师 | P2 | 异常 | 已登录(默认 规划师);相关前置数据就绪 | 1. 上传损坏/非募极/超大/格式不符文件或触发解析超时 2. 观察处理 | 识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 | 精准营养 | — |
| TC-T-27-E | T-27 | 家庭天盘 | 规划师 | P2 | 异常 | 已登录(默认 规划师);相关前置数据就绪 | 1. 上传损坏/非募极/超大/格式不符文件或触发解析超时 2. 观察处理 | 识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 | 家庭天盘 | — |
| TC-T-28-E | T-28 | 内容安全 | 规划师 | P2 | 异常 | 已登录(默认 规划师);相关前置数据就绪 | 1. 制造 AI/方案生成超时或不可用;重复激活/确认/购买 2. 观察处理 | LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活幂等不重复生成任务;失败回滚不残半任务 | 内容安全 | — |
| TC-T-29-E | T-29 | 数据导出(GDPR) | 规划师 | P2 | 异常 | 已登录(默认 规划师);相关前置数据就绪 | 1. 制造 AI/方案生成超时或不可用;重复激活/确认/购买 2. 观察处理 | LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活幂等不重复生成任务;失败回滚不残半任务 | 数据导出(GDPR) | — |
| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-T-01-P | T-1 | 认证/双角色 | 规划师 | P1 | 权限 | 已分配规划师账号 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | AuthController;规划师可切回家长 |
— |
| TC-T-02-P | T-2 | 家庭绑定 | 规划师 | P1 | 权限 | 家长已生成邀请码 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | FamilyInviteController |
— |
| TC-T-03-P | T-3 | 健康报告 | 规划师 | P1 | 权限 | 已绑定家庭与孩子 B | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | 报告上传解析;规划师代传 | — |
| TC-T-04-P | T-3 | 报告审核 | 规划师 | P1 | 权限 | 有报告草稿(如 id=28) | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | 报告审核 | — |
| TC-T-05-P | T-4 | 方案管理 | 规划师 | P1 | 权限 | 有 generated/reviewed/active 方案 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | 方案管理;黑盒回归项 | — |
| TC-T-06-P | T-4 | 方案审核 | 规划师 | P1 | 权限 | 家长已提交方案(generated) | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | 方案状态机 | — |
| TC-T-07-P | T-5 | 方案激活 | 规划师 | P1 | 权限 | 方案已 reviewed | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | 激活拆任务 | — |
| TC-T-08-P | T-5 | 方案激活·幂等 | 规划师 | P1 | 权限 | 方案已 active | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | 幂等约束(黑盒回归) | — |
| TC-T-09-P | T-6 | 任务审核 | 规划师 | P1 | 权限 | 孩子已提交任务 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | TaskController |
— |
| TC-T-10-P | T-7 | 测评录入 | 规划师 | P1 | 权限 | 家长已支付测评订单(待安排→已预约) | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | AssessmentAppointmentController/DanAssessmentController |
— |
| TC-T-11-P | T-8 | 成长计划 | 规划师 | P1 | 权限 | 已绑定家庭 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | GrowthPlanController;黑盒回归 |
— |
| TC-T-12-P | T-8 | 套餐 | 规划师 | P1 | 权限 | 套餐素材就绪 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | GuidePackageController |
— |
| TC-T-13-P | SC-T-13 | 数据隔离 | 规划师 | P1 | 权限 | 已绑定家庭 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | 控制器内 role 检查 | — |
| TC-T-14-P | SC-T-14 | 方案编辑 | 规划师 | P1 | 权限 | 方案存在 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | 方案管理 | — |
| TC-T-15-P | SC-T-15 | 套餐任务 | 规划师 | P1 | 权限 | 套餐存在 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | GuidePackageController |
— |
| TC-T-16-P | SC-T-16 | 健康总览 | 规划师 | P1 | 权限 | 已绑定家庭 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | 仪表板 | — |
| TC-T-17-P | SC-T-17 | 计划进度 | 规划师 | P1 | 权限 | 计划存在 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | GrowthPlanController |
— |
| TC-T-18-P | SC-T-18 | 批量任务 | 规划师 | P1 | 权限 | 多孩子成员 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | TaskController |
— |
| TC-T-19-P | SC-T-19 | 消息推送 | 规划师 | P1 | 权限 | 已绑定客户 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | 消息服务 | — |
| TC-T-20-P | SC-T-20 | 退出/切换 | 规划师 | P1 | 权限 | 已登录 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | AuthController |
— |
| TC-T-21-P | SC-T-21 | 报告对比 | 规划师 | P1 | 权限 | 多份报告 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | 报告管理 | — |
| TC-T-22-P | SC-T-22 | 方案归档 | 规划师 | P2 | 权限 | 方案完成 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) | 方案管理 | — |
| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-T-23-P | T-23 | 报告代传/report-proxy | 规划师 | P1 | 权限 | 已登录(默认 规划师);相关前置数据就绪 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单);对非指派预约 confirm/cancel 2. 观察拦截 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒 | 报告代传/report-proxy | — |
| TC-T-24-P | T-24 | 规划师绑定 | 规划师 | P1 | 权限 | 已登录(默认 规划师);相关前置数据就绪 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单);对非指派预约 confirm/cancel 2. 观察拦截 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒 | 规划师绑定 | — |
| TC-T-25-P | T-25 | 舌诊情绪识别 | 规划师 | P1 | 权限 | 已登录(默认 规划师);相关前置数据就绪 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单);对非指派预约 confirm/cancel 2. 观察拦截 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒 | 舌诊情绪识别 | — |
| TC-T-26-P | T-26 | 精准营养 | 规划师 | P1 | 权限 | 已登录(默认 规划师);相关前置数据就绪 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单);对非指派预约 confirm/cancel 2. 观察拦截 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒 | 精准营养 | — |
| TC-T-27-P | T-27 | 家庭天盘 | 规划师 | P1 | 权限 | 已登录(默认 规划师);相关前置数据就绪 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单);对非指派预约 confirm/cancel 2. 观察拦截 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒 | 家庭天盘 | — |
| TC-T-28-P | T-28 | 内容安全 | 规划师 | P1 | 权限 | 已登录(默认 规划师);相关前置数据就绪 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单);对非指派预约 confirm/cancel 2. 观察拦截 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒 | 内容安全 | — |
| TC-T-29-P | T-29 | 数据导出(GDPR) | 规划师 | P1 | 权限 | 已登录(默认 规划师);相关前置数据就绪 | 1. 访问非绑定家庭的数据(报告/任务/方案/订单);对非指派预约 confirm/cancel 2. 观察拦截 | 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒 | 数据导出(GDPR) | — |
非功能维度:性能(大文件/并发/限流)、兼容(多端/多浏览器/主题)、安全(IDOR/XSS/上传/鉴权/SSRF)。编号后缀
-N与正常流/异常流(-E)/权限流(-P)并列。
| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-T-N01 | SC-T-03 | 健康报告 | 规划师 | P1 | 性能 | 批量代传 ≥ 10 份 PDF | 1. 连续代传报告 2. 观察解析队列 | 队列不堵;单份 ≤ 30s;失败重试不重复入库 | 报告解析中台 | — |
| TC-T-N02 | SC-T-06 | 方案审核 | 规划师 | P1 | 性能 | 待审核方案 ≥ 50 | 1. 打开审核列表 2. 翻页/筛选 | 列表 ≤ 2s;筛选/排序生效 | 方案状态机 | — |
| TC-T-N03 | SC-T-01 | 绑定家庭 | 规划师 | P2 | 性能 | 绑定 ≥ 30 家庭 | 1. 切换绑定家庭 2. 查数据 | 切换 ≤ 1.5s;数据隔离不串 | 绑定家庭 | — |
| TC-T-N04 | SC-T-23 | 报告代传 | 规划师 | P1 | 兼容 | 微信小程序/Web 后台 | 1. 各端代传报告 | 上传入口一致;解析预览正常 | 代传入口 | — |
| TC-T-N05 | SC-T-03 | 健康报告 | 规划师 | P0 | 安全 | 存在非绑定家庭 F9 | 1. 用本人 token 请求 F9 报告/方案 | 返回 403(非绑定家庭越权拦截);不泄露 | 规划师鉴权 | — |
| TC-T-N06 | SC-T-06 | 方案审核 | 规划师 | P0 | 安全 | 抓包 | 1. 拦截 confirm/cancel 2. 篡改 planId 为其他家庭 | 服务端归属校验;非法操作 403/拒绝 | 方案鉴权 | — |
| TC-T-N07 | SC-T-25 | 舌诊录入 | 规划师 | P1 | 安全 | 上传含脚本文件名/恶意图片 | 1. 上传舌诊图(.php/.html) | 类型校验拒绝;不执行;存储路径随机化防遍历 | 上传校验 | — |
| TC-T-N08 | SC-T-26 | 精准营养 | 规划师 | P1 | 安全 | 构造长文本/特殊字符营养方案 | 1. 提交含 <script> 的方案文本 |
后端转义存储;前端不执行 | 方案内容安全 | — |