child.md 24 KB

测试用例 · 孩子(Child)

关联场景:../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-C-01,门禁项)

  • TC-C-01a(权限·门禁):孩子端登录态下,任何「切回家长」的 UI 入口与接口调用都必须不存在/被拒;否则整体不通过。
  • TC-C-01b(异常):不能登录用户(local)无法自行登录,由家长代管其数据,相关任务/健康/DOA 以代管视角可见。

补齐用例(缺口场景 SC-C-10~18)

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 —

本轮扩展场景用例(新增 SC-C)

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