关联场景:
../user-scenarios/03-child.md。对应 e2e:../e2e/roles/child/*.spec.js。
| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-C-01 | C-1 | 权限/双角色 | 孩子 | P0 | 权限 | 孩子可登录账号 | 1. 孩子独立登录 2. 检查界面与直接访问家长路由 | 进入孩子端首页;无切换家长入口;直接拼家长路由被 role 校验拦截 | 双角色铁律:孩子端不能切家长 | e2e/roles/child/login.spec.js |
| TC-C-02 | C-2 | 任务 | 孩子 | P0 | 功能 | 家长已下发任务「睡前阅读」 | 1. 打开待执行任务 2. 点「完成」提交 | 状态→待家长审核;完成动作写入记录;重复提交不重复计分 | TaskController |
e2e/roles/child/../tasks |
| TC-C-03 | C-3 | 小游戏 | 孩子 | P1 | 功能 | 小游戏入口可见 | 1. 打开舒尔特方格并完成 2. 查看积分/能量/排行 | 得分按规则计算;积分/能量到账;成绩入榜;中途退出不计分 | pages/games/* |
e2e/roles/child/mini-games.spec.js |
| TC-C-04 | C-4 | 心愿 | 孩子 | P1 | 功能 | 孩子已创建心愿 | 1. 创建心愿(名称+积分) 2. 进入家长待审批 | 心愿进入家长待审批列表;积分不足创建拦截 | WishController |
e2e/roles/parent/wish-management.spec.js |
| TC-C-05 | C-4 | 心愿 | 孩子 | P1 | 功能 | 家长已通过心愿 | 1. 操作兑换 | 兑换成功,积分扣减正确;驳回后不可兑换 | RewardController |
— |
| TC-C-06 | C-5 | 能量 | 孩子 | P1 | 功能 | 已有能量记录 | 1. 进个人能量页 2. 执行任务后查看 | 显示个人能量值;有增量且流水可追溯;能量不为负 | EnergyController |
e2e/roles/parent/energy-dashboard.spec.js(参考) |
| TC-C-07 | C-6 | 报告/权限 | 孩子 | P1 | 权限 | 家长已上传报告 | 1. 打开报告列表/详情 2. 检查编辑/删除入口 3. 直接调删除接口 | 可见报告内容;UI 无编辑/删除入口;直接调删除接口被 role 校验拒绝(403/401) | 报告查看权限隔离 | e2e/roles/teacher/dan-report-flow.spec.js(参考) |
| TC-C-08 | C-7 | 打卡/方案 | 孩子 | P0 | 功能 | 规划师已激活方案,生成训练任务 | 1. 打开方案任务 2. 完成并提交打卡 | 打卡成功,方案 completedDays+1;重复打卡不重复计数(幂等) |
健康打卡/方案进度 | e2e/roles/child/daily-checkin.spec.js |
| TC-C-09 | C-8 | 勋章 | 孩子 | P2 | 功能 | 已有部分成就 | 1. 打开勋章墙 | 显示已获得/未获得勋章及进度;未解锁不显示领取 | RewardController |
— |
| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-C-10 | SC-C-10 | 勋章提醒 | 孩子 | P2 | 功能 | 达成勋章条件 | 1. 触发成就条件 2. 观察解锁与推送 | 达成→解锁+推送;重复达成不重复发推送 | MedalController |
— |
| TC-C-11 | SC-C-11 | 成长记录 | 孩子 | P1 | 功能 | 有成长数据 | 1. 成长时间线→只读查看 | 仅展示本人数据;其他成员数据不可见 | GrowthController |
— |
| TC-C-12 | SC-C-12 | 食谱查看 | 孩子 | P1 | 功能 | 家庭食谱已生成 | 1. 打开家庭食谱→当日三餐 | 展示早/午/晚;无食谱显示空态不 500 | 饮食推荐 | — |
| TC-C-13 | SC-C-13 | AI 对话 | 孩子 | P1 | 功能 | 已登录 | 1. 进对话→发送问题→多轮 | 返回适龄回答;敏感/不适龄内容被过滤 | AIChatController |
— |
| TC-C-14 | SC-C-14 | 任务重做 | 孩子 | P1 | 功能 | 任务被驳回 | 1. 打开驳回任务 2. 重做→再提交 | 驳回后可重做;重做提交进入待审核 | TaskController |
— |
| TC-C-15 | SC-C-15 | 消息接收 | 孩子 | P1 | 功能 | 有消息 | 1. 消息列表→已读 | 仅见发给自己的消息;越权消息不可见 | 消息服务 | — |
| TC-C-16 | SC-C-16 | 个人资料 | 孩子 | P1 | 功能 | 已登录 | 1. 资料页→只读/部分可改 | 敏感字段(如关系)家长代管不可改 | AuthController |
— |
| TC-C-17 | SC-C-17 | 退出 | 孩子 | P1 | 功能 | 已登录 | 1. 退出→清 token | 退出清除本地缓存;回登录页 | AuthController |
— |
| TC-C-18 | SC-C-18 | 设备校验 | 孩子 | P2 | 功能 | 登录设备 | 1. 异常设备登录校验 | 异常设备触发二次验证;通过后放行 | AuthController |
— |
| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-C-19 | C-19 | 消息服务 | 孩子 | P1 | 功能 | 已登录(默认 孩子);相关前置数据就绪 | 1. 按场景流程执行:消息列表 → 已读 2. 观察结果 | 达成目标:收通知;边界:越权消息不可见 | 消息服务 | — |
| TC-C-20 | C-20 | GrowthController | 孩子 | P1 | 功能 | 已登录(默认 孩子);相关前置数据就绪 | 1. 按场景流程执行:档案页 → 只读;导出需家长 2. 观察结果 | 达成目标:看自己档案;边界:未成年人导出受限,需家长代办 | GrowthController | — |
| TC-C-21 | C-21 | 舌诊情绪识别 | 孩子 | P1 | 功能 | 已登录(默认 孩子);相关前置数据就绪 | 1. 按场景流程执行:拍照 → 上传 → 识别 2. 观察结果 | 达成目标:拍照上传;边界:模糊/非照片拒绝;隐私标注 | 舌诊情绪识别 | — |
| TC-C-22 | C-22 | MallController | 孩子 | P1 | 功能 | 已登录(默认 孩子);相关前置数据就绪 | 1. 按场景流程执行:选商品 → 积分兑换 2. 观察结果 | 达成目标:用积分换;边界:积分不足拦截;重复兑换幂等 | MallController | — |
| TC-C-23 | C-23 | 客服 | 孩子 | P1 | 功能 | 已登录(默认 孩子);相关前置数据就绪 | 1. 按场景流程执行:提交反馈 2. 观察结果 | 达成目标:提反馈;边界:内容适龄过滤;敏感信息脱敏 | 客服 | — |
| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-C-01-E | C-1 | 权限/双角色 | 孩子 | P2 | 异常 | 孩子可登录账号 | 1. 未登录/过期 token/非法切换 2. 观察拦截 | token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 | 双角色铁律:孩子端不能切家长 | — |
| TC-C-02-E | C-2 | 任务 | 孩子 | P2 | 异常 | 家长已下发任务「睡前阅读」 | 1. 重复提交/并发/超期/驳回后重做 2. 观察处理 | 重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 | TaskController |
— |
| TC-C-03-E | C-3 | 小游戏 | 孩子 | P2 | 异常 | 小游戏入口可见 | 1. 输入非法参数/网络中断/请求超时 2. 观察降级 | 系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 | pages/games/* |
— |
| TC-C-04-E | C-4 | 心愿 | 孩子 | P2 | 异常 | 孩子已创建心愿 | 1. 重复提交/并发/超期/驳回后重做 2. 观察处理 | 重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 | WishController |
— |
| TC-C-05-E | C-4 | 心愿 | 孩子 | P2 | 异常 | 家长已通过心愿 | 1. 重复提交/并发/超期/驳回后重做 2. 观察处理 | 重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 | RewardController |
— |
| TC-C-06-E | C-5 | 能量 | 孩子 | P2 | 异常 | 已有能量记录 | 1. 重复提交/并发/超期/驳回后重做 2. 观察处理 | 重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 | EnergyController |
— |
| TC-C-07-E | C-6 | 报告/权限 | 孩子 | P2 | 异常 | 家长已上传报告 | 1. 上传损坏/非募极/超大/格式不符文件或触发解析超时 2. 观察系统处理 | 识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 | 报告查看权限隔离 | — |
| TC-C-08-E | C-7 | 打卡/方案 | 孩子 | P2 | 异常 | 规划师已激活方案,生成训练任务 | 1. 制造 AI/方案生成超时或不可用;制造重复激活/确认/购买 2. 观察兜底与幂等 | LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 | 健康打卡/方案进度 | — |
| TC-C-09-E | C-8 | 勋章 | 孩子 | P3 | 异常 | 已有部分成就 | 1. 重复提交/并发/超期/驳回后重做 2. 观察处理 | 重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 | RewardController |
— |
| TC-C-10-E | SC-C-10 | 勋章提醒 | 孩子 | P3 | 异常 | 达成勋章条件 | 1. 重复提交/并发/超期/驳回后重做 2. 观察处理 | 重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 | MedalController |
— |
| TC-C-11-E | SC-C-11 | 成长记录 | 孩子 | P2 | 异常 | 有成长数据 | 1. 重复提交/并发/超期/驳回后重做 2. 观察处理 | 重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 | GrowthController |
— |
| TC-C-12-E | SC-C-12 | 食谱查看 | 孩子 | P2 | 异常 | 家庭食谱已生成 | 1. 制造 AI/方案生成超时或不可用;制造重复激活/确认/购买 2. 观察兜底与幂等 | LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 | 饮食推荐 | — |
| TC-C-13-E | SC-C-13 | AI 对话 | 孩子 | P2 | 异常 | 已登录 | 1. 制造 AI/方案生成超时或不可用;制造重复激活/确认/购买 2. 观察兜底与幂等 | LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 | AIChatController |
— |
| TC-C-14-E | SC-C-14 | 任务重做 | 孩子 | P2 | 异常 | 任务被驳回 | 1. 重复提交/并发/超期/驳回后重做 2. 观察处理 | 重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 | TaskController |
— |
| TC-C-15-E | SC-C-15 | 消息接收 | 孩子 | P2 | 异常 | 有消息 | 1. 输入非法参数/网络中断/请求超时 2. 观察降级 | 系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 | 消息服务 | — |
| TC-C-16-E | SC-C-16 | 个人资料 | 孩子 | P2 | 异常 | 已登录 | 1. 输入非法格式/重复/越界值 2. 观察校验 | 字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 | AuthController |
— |
| TC-C-17-E | SC-C-17 | 退出 | 孩子 | P2 | 异常 | 已登录 | 1. 未登录/过期 token/非法切换 2. 观察拦截 | token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 | AuthController |
— |
| TC-C-18-E | SC-C-18 | 设备校验 | 孩子 | P3 | 异常 | 登录设备 | 1. 未登录/过期 token/非法切换 2. 观察拦截 | token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 | AuthController |
— |
| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-C-19-E | C-19 | 消息服务 | 孩子 | P2 | 异常 | 已登录(默认 孩子);相关前置数据就绪 | 1. 输入非法格式/重复/越界值 2. 观察处理 | 字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 | 消息服务 | — |
| TC-C-20-E | C-20 | GrowthController | 孩子 | P2 | 异常 | 已登录(默认 孩子);相关前置数据就绪 | 1. 制造并发/重复/异常设备/越权对象操作 2. 观察处理 | 并发安全;重复操作幂等;异常设备二次验证;数据归档/导出脱敏合规 | GrowthController | — |
| TC-C-21-E | C-21 | 舌诊情绪识别 | 孩子 | P2 | 异常 | 已登录(默认 孩子);相关前置数据就绪 | 1. 上传损坏/非募极/超大/格式不符文件或触发解析超时 2. 观察处理 | 识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 | 舌诊情绪识别 | — |
| TC-C-22-E | C-22 | MallController | 孩子 | P2 | 异常 | 已登录(默认 孩子);相关前置数据就绪 | 1. 制造支付失败/并发抢购/重复提交/库存或名额不足 2. 观察处理 | 支付失败回滚不生成额度/订单;并发超卖拦截;重复提交幂等;库存/名额边界正确 | MallController | — |
| TC-C-23-E | C-23 | 客服 | 孩子 | P2 | 异常 | 已登录(默认 孩子);相关前置数据就绪 | 1. 输入非法格式/重复/越界值 2. 观察处理 | 字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 | 客服 | — |
| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-C-01-P | C-1 | 权限/双角色 | 孩子 | P1 | 权限 | 孩子可登录账号 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | 双角色铁律:孩子端不能切家长 | — |
| TC-C-02-P | C-2 | 任务 | 孩子 | P1 | 权限 | 家长已下发任务「睡前阅读」 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | TaskController |
— |
| TC-C-03-P | C-3 | 小游戏 | 孩子 | P1 | 权限 | 小游戏入口可见 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | pages/games/* |
— |
| TC-C-04-P | C-4 | 心愿 | 孩子 | P1 | 权限 | 孩子已创建心愿 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | WishController |
— |
| TC-C-05-P | C-4 | 心愿 | 孩子 | P1 | 权限 | 家长已通过心愿 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | RewardController |
— |
| TC-C-06-P | C-5 | 能量 | 孩子 | P1 | 权限 | 已有能量记录 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | EnergyController |
— |
| TC-C-07-P | C-6 | 报告/权限 | 孩子 | P1 | 权限 | 家长已上传报告 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | 报告查看权限隔离 | — |
| TC-C-08-P | C-7 | 打卡/方案 | 孩子 | P1 | 权限 | 规划师已激活方案,生成训练任务 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | 健康打卡/方案进度 | — |
| TC-C-09-P | C-8 | 勋章 | 孩子 | P2 | 权限 | 已有部分成就 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | RewardController |
— |
| TC-C-10-P | SC-C-10 | 勋章提醒 | 孩子 | P2 | 权限 | 达成勋章条件 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | MedalController |
— |
| TC-C-11-P | SC-C-11 | 成长记录 | 孩子 | P1 | 权限 | 有成长数据 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | GrowthController |
— |
| TC-C-12-P | SC-C-12 | 食谱查看 | 孩子 | P1 | 权限 | 家庭食谱已生成 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | 饮食推荐 | — |
| TC-C-13-P | SC-C-13 | AI 对话 | 孩子 | P1 | 权限 | 已登录 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | AIChatController |
— |
| TC-C-14-P | SC-C-14 | 任务重做 | 孩子 | P1 | 权限 | 任务被驳回 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | TaskController |
— |
| TC-C-15-P | SC-C-15 | 消息接收 | 孩子 | P1 | 权限 | 有消息 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | 消息服务 | — |
| TC-C-16-P | SC-C-16 | 个人资料 | 孩子 | P1 | 权限 | 已登录 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | AuthController |
— |
| TC-C-17-P | SC-C-17 | 退出 | 孩子 | P1 | 权限 | 已登录 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | AuthController |
— |
| TC-C-18-P | SC-C-18 | 设备校验 | 孩子 | P2 | 权限 | 登录设备 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | AuthController |
— |
| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-C-19-P | C-19 | 消息服务 | 孩子 | P1 | 权限 | 已登录(默认 孩子);相关前置数据就绪 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | 消息服务 | — |
| TC-C-20-P | C-20 | GrowthController | 孩子 | P1 | 权限 | 已登录(默认 孩子);相关前置数据就绪 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | GrowthController | — |
| TC-C-21-P | C-21 | 舌诊情绪识别 | 孩子 | P1 | 权限 | 已登录(默认 孩子);相关前置数据就绪 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | 舌诊情绪识别 | — |
| TC-C-22-P | C-22 | MallController | 孩子 | P1 | 权限 | 已登录(默认 孩子);相关前置数据就绪 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | MallController | — |
| TC-C-23-P | C-23 | 客服 | 孩子 | P1 | 权限 | 已登录(默认 孩子);相关前置数据就绪 | 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 | 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 | 客服 | — |
非功能维度:性能(大文件/并发/限流)、兼容(多端/多浏览器/主题)、安全(IDOR/XSS/上传/鉴权/SSRF)。编号后缀
-N与正常流/异常流(-E)/权限流(-P)并列。
| TC 编号 | 所属场景 | 模块 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联需求/设计 | 对应 e2e |
|---|---|---|---|---|---|---|---|---|---|---|
| TC-C-N01 | SC-C-05 | 任务打卡 | 孩子 | P1 | 性能 | 方案含 ≥ 30 任务 | 1. 连续提交打卡 2. 测量并发提交 | 重复提交幂等;并发不重复计分;响应 ≤ 1s | TaskController | — |
| TC-C-N02 | SC-C-19 | 消息通知 | 孩子 | P2 | 性能 | 大量通知(≥100) | 1. 打开消息中心 2. 翻页/标记已读 | 列表渲染 ≤ 1.5s;标记已读即时 | 消息中心 | — |
| TC-C-N03 | SC-C-01 | 孩子端 | 孩子 | P1 | 兼容 | iOS/Android/小程序 | 1. 各端登录孩子视角 2. 打卡/心愿 | 功能一致;无错位;低龄设备流畅 | 孩子端 | — |
| TC-C-N04 | SC-C-03 | 只读报告 | 孩子 | P2 | 兼容 | 亮/暗主题、平板屏 | 1. 查看报告 2. 切换主题 | 图表自适应;无溢出;可读 | 报告前端 | — |
| TC-C-N05 | SC-C-02 | 心愿 | 孩子 | P1 | 安全 | 抓包 | 1. 拦截心愿提交 2. 篡改 memberId 为其他孩子 | 服务端校验归属;403/拒绝;孩子不可越权操作他人 | 心愿鉴权 | — |
| TC-C-N06 | SC-C-19 | 消息通知 | 孩子 | P2 | 安全 | 构造恶意推送内容 | 1. 模拟收到含 <img onerror> 推送 2. 打开 |
内容转义渲染;不执行脚本 | 消息渲染 | — |
| TC-C-N07 | SC-C-01 | 孩子端 | 孩子 | P0 | 安全 | 直接调用父级/管理接口 | 1. 孩子 token 调 /api/admin/*、/api/family/member/switch 切回家长 |
一律 401/403;孩子端不可切回家长铁律生效 | 双角色铁律 | e2e/api/nonfunc-security.spec.js |