21 KiB
21 KiB
会员管理模块 - 测试用例
| 文档信息 | 内容 |
|---|---|
| 文档版本 | V1.0 |
| 模块名称 | 会员管理模块 - 测试用例 |
| 编写团队 | pangu |
| 创建日期 | 2026-01-31 |
1. 测试范围
1.1 测试模块
- 会员列表查询
- 会员新增
- 会员编辑
- 会员删除
- 重置密码
- 状态切换
- 学生绑定/解绑
- 数据权限
1.2 测试类型
| 测试类型 | 说明 |
|---|---|
| 功能测试 | 验证功能是否符合需求 |
| 接口测试 | 验证API接口正确性 |
| 边界测试 | 验证边界条件处理 |
| 异常测试 | 验证异常情况处理 |
| 权限测试 | 验证权限控制 |
| 性能测试 | 验证性能指标 |
2. 功能测试用例
2.1 会员列表查询
TC-MEM-001 正常查询会员列表
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-001 |
| 用例名称 | 正常查询会员列表 |
| 优先级 | P0 |
| 前置条件 | 1. 用户已登录后台 2. 用户具有 user:member:list 权限 3. 数据库中存在会员数据 |
| 测试步骤 | 1. 进入会员管理页面 2. 不输入任何搜索条件 3. 点击搜索按钮 |
| 预期结果 | 1. 页面正常加载 2. 表格显示会员列表 3. 分页信息正确显示 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-002 按手机号查询
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-002 |
| 用例名称 | 按手机号查询会员 |
| 优先级 | P0 |
| 前置条件 | 1. 用户已登录后台 2. 数据库中存在手机号为 13812345678 的会员 |
| 测试步骤 | 1. 在手机号输入框输入"138" 2. 点击搜索按钮 |
| 预期结果 | 1. 列表显示手机号包含"138"的会员 2. 手机号以脱敏形式显示(138****5678) |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-003 按身份类型查询
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-003 |
| 用例名称 | 按身份类型查询会员 |
| 优先级 | P0 |
| 前置条件 | 1. 用户已登录后台 2. 数据库中存在家长和教师类型的会员 |
| 测试步骤 | 1. 在身份类型下拉框选择"教师" 2. 点击搜索按钮 |
| 预期结果 | 1. 列表只显示身份类型为"教师"的会员 2. 身份类型列显示"教师"标签 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-004 按注册时间范围查询
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-004 |
| 用例名称 | 按注册时间范围查询 |
| 优先级 | P1 |
| 前置条件 | 1. 用户已登录后台 2. 数据库中存在不同注册时间的会员 |
| 测试步骤 | 1. 选择注册时间范围为"2026-01-01"至"2026-01-31" 2. 点击搜索按钮 |
| 预期结果 | 列表只显示注册时间在2026年1月份的会员 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-005 组合条件查询
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-005 |
| 用例名称 | 组合条件查询 |
| 优先级 | P1 |
| 前置条件 | 用户已登录后台 |
| 测试步骤 | 1. 输入手机号"138" 2. 选择身份类型"教师" 3. 选择状态"正常" 4. 点击搜索 |
| 预期结果 | 列表显示同时满足所有条件的会员 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-006 重置搜索条件
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-006 |
| 用例名称 | 重置搜索条件 |
| 优先级 | P1 |
| 前置条件 | 用户已输入搜索条件 |
| 测试步骤 | 1. 输入各种搜索条件 2. 点击重置按钮 |
| 预期结果 | 1. 所有搜索条件清空 2. 列表显示全部数据(分页) |
| 实际结果 | |
| 测试状态 | 待测试 |
2.2 会员新增
TC-MEM-010 新增家长会员-必填项
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-010 |
| 用例名称 | 新增家长会员-仅填必填项 |
| 优先级 | P0 |
| 前置条件 | 1. 用户已登录后台 2. 用户具有 user:member:add 权限 |
| 测试步骤 | 1. 点击新增按钮 2. 输入手机号"13912345678" 3. 选择身份类型"家长" 4. 点击保存 |
| 预期结果 | 1. 提示"新增成功" 2. 返回列表页 3. 列表中显示新增的会员 4. 会员编号自动生成(JS+时间戳) 5. 昵称自动生成 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-011 新增家长会员-全部字段
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-011 |
| 用例名称 | 新增家长会员-填写全部字段 |
| 优先级 | P0 |
| 前置条件 | 用户已登录后台 |
| 测试步骤 | 1. 点击新增按钮 2. 输入手机号"13922345678" 3. 输入昵称"张三家长" 4. 选择性别"男" 5. 选择出生日期 6. 选择身份类型"家长" 7. 点击保存 |
| 预期结果 | 1. 提示"新增成功" 2. 所有字段正确保存 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-012 新增教师会员-完整信息
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-012 |
| 用例名称 | 新增教师会员 |
| 优先级 | P0 |
| 前置条件 | 1. 用户已登录后台 2. 系统中存在学校数据 |
| 测试步骤 | 1. 点击新增按钮 2. 输入手机号"13932345678" 3. 输入昵称"李老师" 4. 选择身份类型"教师" 5. 选择所属区域 6. 选择所属学校 7. 选择所属年级 8. 选择所属班级 9. 点击保存 |
| 预期结果 | 1. 提示"新增成功" 2. 教师信息正确保存 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-013 新增教师-缺少学校信息
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-013 |
| 用例名称 | 新增教师会员-缺少学校信息 |
| 优先级 | P0 |
| 前置条件 | 用户已登录后台 |
| 测试步骤 | 1. 点击新增按钮 2. 输入手机号 3. 选择身份类型"教师" 4. 不选择学校信息 5. 点击保存 |
| 预期结果 | 提示"请选择所属区域/学校/年级/班级" |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-014 手机号格式校验
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-014 |
| 用例名称 | 手机号格式校验 |
| 优先级 | P0 |
| 前置条件 | 用户已登录后台 |
| 测试数据 | 错误手机号:12345678901、1381234567、138123456789、abcdefghijk |
| 测试步骤 | 1. 输入错误格式的手机号 2. 触发校验 |
| 预期结果 | 提示"请输入正确的手机号" |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-015 手机号唯一性校验
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-015 |
| 用例名称 | 手机号唯一性校验 |
| 优先级 | P0 |
| 前置条件 | 数据库中已存在手机号为 13812345678 的会员 |
| 测试步骤 | 1. 点击新增 2. 输入已存在的手机号"13812345678" 3. 点击保存 |
| 预期结果 | 提示"手机号已存在" |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-016 新增时绑定学生
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-016 |
| 用例名称 | 新增会员时绑定学生 |
| 优先级 | P1 |
| 前置条件 | 系统中存在未绑定的学生 |
| 测试步骤 | 1. 新增家长会员 2. 点击绑定学生 3. 选择学生 4. 确认绑定 5. 保存会员 |
| 预期结果 | 1. 会员创建成功 2. 学生绑定成功 |
| 实际结果 | |
| 测试状态 | 待测试 |
2.3 会员编辑
TC-MEM-020 编辑基本信息
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-020 |
| 用例名称 | 编辑会员基本信息 |
| 优先级 | P0 |
| 前置条件 | 数据库中存在会员数据 |
| 测试步骤 | 1. 在列表中点击编辑 2. 修改昵称、性别、出生日期 3. 点击保存 |
| 预期结果 | 1. 提示"修改成功" 2. 信息正确更新 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-021 编辑-修改手机号
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-021 |
| 用例名称 | 修改会员手机号 |
| 优先级 | P0 |
| 前置条件 | 数据库中存在会员数据 |
| 测试步骤 | 1. 点击编辑 2. 修改手机号为新的有效手机号 3. 点击保存 |
| 预期结果 | 1. 手机号更新成功 2. 唯一性校验通过 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-022 编辑-修改为已存在手机号
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-022 |
| 用例名称 | 修改为已存在的手机号 |
| 优先级 | P0 |
| 前置条件 | 存在两个会员,手机号分别为A和B |
| 测试步骤 | 1. 编辑会员A 2. 将手机号改为会员B的手机号 3. 点击保存 |
| 预期结果 | 提示"手机号已存在" |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-023 身份类型切换-家长改教师
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-023 |
| 用例名称 | 身份类型切换-家长改教师 |
| 优先级 | P0 |
| 前置条件 | 存在身份类型为家长的会员 |
| 测试步骤 | 1. 编辑家长会员 2. 将身份类型改为"教师" 3. 观察表单变化 4. 填写学校信息 5. 保存 |
| 预期结果 | 1. 切换后显示教师信息区域 2. 要求填写学校相关信息 3. 保存成功 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-024 身份类型切换-教师改家长
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-024 |
| 用例名称 | 身份类型切换-教师改家长 |
| 优先级 | P0 |
| 前置条件 | 存在身份类型为教师的会员 |
| 测试步骤 | 1. 编辑教师会员 2. 将身份类型改为"家长" 3. 观察表单变化 4. 保存 |
| 预期结果 | 1. 切换后隐藏教师信息区域 2. 学校信息被清空 3. 保存成功 |
| 实际结果 | |
| 测试状态 | 待测试 |
2.4 会员删除
TC-MEM-030 删除无绑定会员
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-030 |
| 用例名称 | 删除无绑定学生的会员 |
| 优先级 | P0 |
| 前置条件 | 存在未绑定学生的会员 |
| 测试步骤 | 1. 在列表中点击删除 2. 确认删除 |
| 预期结果 | 1. 提示"删除成功" 2. 会员从列表消失(软删除) |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-031 删除有绑定会员
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-031 |
| 用例名称 | 删除已绑定学生的会员 |
| 优先级 | P0 |
| 前置条件 | 存在已绑定学生的会员 |
| 测试步骤 | 1. 在列表中点击删除 2. 确认删除 |
| 预期结果 | 提示"该会员已绑定学生,请先解绑学生后再删除" |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-032 删除确认取消
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-032 |
| 用例名称 | 删除确认取消 |
| 优先级 | P1 |
| 前置条件 | 存在会员数据 |
| 测试步骤 | 1. 点击删除 2. 在确认弹窗点击取消 |
| 预期结果 | 会员未被删除 |
| 实际结果 | |
| 测试状态 | 待测试 |
2.5 重置密码
TC-MEM-040 重置密码成功
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-040 |
| 用例名称 | 重置密码成功 |
| 优先级 | P0 |
| 前置条件 | 存在会员数据 |
| 测试步骤 | 1. 在列表中点击重置密码 2. 确认操作 |
| 预期结果 | 1. 弹窗显示新密码 2. 新密码为8位随机字符 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-041 复制新密码
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-041 |
| 用例名称 | 复制新密码 |
| 优先级 | P0 |
| 前置条件 | 已重置密码,弹窗显示中 |
| 测试步骤 | 1. 点击复制按钮 |
| 预期结果 | 1. 提示"复制成功" 2. 密码已复制到剪贴板 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-042 新密码可登录
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-042 |
| 用例名称 | 使用新密码登录 |
| 优先级 | P0 |
| 前置条件 | 已重置密码并记录新密码 |
| 测试步骤 | 1. 使用会员手机号和新密码登录移动端 |
| 预期结果 | 登录成功 |
| 实际结果 | |
| 测试状态 | 待测试 |
2.6 状态切换
TC-MEM-050 禁用会员
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-050 |
| 用例名称 | 禁用会员 |
| 优先级 | P0 |
| 前置条件 | 存在状态为"正常"的会员 |
| 测试步骤 | 1. 点击状态开关,关闭 2. 确认操作 |
| 预期结果 | 1. 状态变为"停用" 2. 提示操作成功 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-051 启用会员
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-051 |
| 用例名称 | 启用会员 |
| 优先级 | P0 |
| 前置条件 | 存在状态为"停用"的会员 |
| 测试步骤 | 1. 点击状态开关,开启 2. 确认操作 |
| 预期结果 | 1. 状态变为"正常" 2. 提示操作成功 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-052 禁用会员无法登录
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-052 |
| 用例名称 | 禁用会员无法登录 |
| 优先级 | P0 |
| 前置条件 | 会员已被禁用 |
| 测试步骤 | 1. 使用被禁用会员的手机号和密码登录 |
| 预期结果 | 提示"账号已被禁用" |
| 实际结果 | |
| 测试状态 | 待测试 |
2.7 学生绑定
TC-MEM-060 家长绑定学生
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-060 |
| 用例名称 | 家长绑定任意学生 |
| 优先级 | P0 |
| 前置条件 | 1. 存在家长会员 2. 存在未绑定的学生 |
| 测试步骤 | 1. 编辑家长会员 2. 点击绑定学生 3. 选择任意学生 4. 确认绑定 |
| 预期结果 | 1. 学生列表显示在会员下 2. 绑定成功 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-061 教师绑定本校学生
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-061 |
| 用例名称 | 教师绑定本校学生 |
| 优先级 | P0 |
| 前置条件 | 1. 存在教师会员(属于学校A) 2. 存在学校A的学生 |
| 测试步骤 | 1. 编辑教师会员 2. 点击绑定学生 3. 选择本校学生 4. 确认绑定 |
| 预期结果 | 绑定成功 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-062 教师绑定非本校学生
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-062 |
| 用例名称 | 教师绑定非本校学生(失败) |
| 优先级 | P0 |
| 前置条件 | 1. 存在教师会员(属于学校A) 2. 存在学校B的学生 |
| 测试步骤 | 1. 编辑教师会员 2. 尝试绑定学校B的学生 |
| 预期结果 | 1. 学生选择弹窗只显示本校学生 2. 或提示"教师只能绑定本校学生" |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-063 解绑学生
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-063 |
| 用例名称 | 解绑学生 |
| 优先级 | P0 |
| 前置条件 | 存在已绑定学生的会员 |
| 测试步骤 | 1. 编辑会员 2. 点击学生列表中的解绑按钮 3. 确认解绑 |
| 预期结果 | 1. 学生从列表中移除 2. 解绑成功 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-064 绑定多个学生
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-064 |
| 用例名称 | 绑定多个学生 |
| 优先级 | P1 |
| 前置条件 | 存在家长会员和多个学生 |
| 测试步骤 | 1. 编辑家长会员 2. 多次绑定不同学生 |
| 预期结果 | 可以绑定多个学生 |
| 实际结果 | |
| 测试状态 | 待测试 |
2.8 数据权限测试
TC-MEM-070 超级管理员查看全部
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-070 |
| 用例名称 | 超级管理员查看全部会员 |
| 优先级 | P0 |
| 前置条件 | 使用超级管理员账号登录 |
| 测试步骤 | 进入会员管理页面查看列表 |
| 预期结果 | 显示所有会员数据 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-071 分公司用户查看区域会员
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-071 |
| 用例名称 | 分公司用户查看所属区域会员 |
| 优先级 | P0 |
| 前置条件 | 使用分公司用户账号登录(如武汉分公司) |
| 测试步骤 | 进入会员管理页面查看列表 |
| 预期结果 | 只显示武汉区域的会员 |
| 实际结果 | |
| 测试状态 | 待测试 |
TC-MEM-072 学校用户查看本校教师
| 项目 | 内容 |
|---|---|
| 用例编号 | TC-MEM-072 |
| 用例名称 | 学校用户查看本校教师 |
| 优先级 | P0 |
| 前置条件 | 使用学校用户账号登录(如武汉一中) |
| 测试步骤 | 进入会员管理页面查看列表 |
| 预期结果 | 只显示武汉一中的教师会员 |
| 实际结果 | |
| 测试状态 | 待测试 |
3. 接口测试用例
3.1 查询会员列表接口
| 用例编号 | 接口 | 请求参数 | 预期响应 |
|---|---|---|---|
| API-001 | GET /member/list | pageNum=1&pageSize=10 | code=200, 返回列表数据 |
| API-002 | GET /member/list | phone=138 | 返回手机号包含138的会员 |
| API-003 | GET /member/list | identityType=2 | 返回教师会员 |
| API-004 | GET /member/list | status=1 | 返回停用会员 |
3.2 新增会员接口
| 用例编号 | 接口 | 请求参数 | 预期响应 |
|---|---|---|---|
| API-010 | POST /member | {phone:"13912345678", identityType:"1"} | code=200 |
| API-011 | POST /member | {phone:"", identityType:"1"} | code=400, msg="手机号不能为空" |
| API-012 | POST /member | {phone:"123", identityType:"1"} | code=400, msg="手机号格式不正确" |
| API-013 | POST /member | {phone:"13812345678", identityType:"2"} | code=400, msg="请选择所属区域" |
3.3 重置密码接口
| 用例编号 | 接口 | 请求参数 | 预期响应 |
|---|---|---|---|
| API-020 | PUT /member/resetPwd/1 | - | code=200, password存在 |
| API-021 | PUT /member/resetPwd/999999 | - | code=500, msg="会员不存在" |
3.4 删除会员接口
| 用例编号 | 接口 | 请求参数 | 预期响应 |
|---|---|---|---|
| API-030 | DELETE /member/1 | - | code=200(无绑定学生时) |
| API-031 | DELETE /member/2 | - | code=500, msg="请先解绑学生"(有绑定学生时) |
4. 边界测试
4.1 字段长度测试
| 用例编号 | 字段 | 测试值 | 预期结果 |
|---|---|---|---|
| BT-001 | 手机号 | 10位数字 | 提示格式错误 |
| BT-002 | 手机号 | 12位数字 | 提示格式错误 |
| BT-003 | 昵称 | 50个字符 | 保存成功 |
| BT-004 | 昵称 | 51个字符 | 截断或提示超长 |
4.2 分页边界测试
| 用例编号 | 测试场景 | 预期结果 |
|---|---|---|
| BT-010 | pageNum=0 | 默认为第1页 |
| BT-011 | pageSize=0 | 默认为10条 |
| BT-012 | pageNum超过总页数 | 返回空列表 |
| BT-013 | 无数据时查询 | 返回空列表,total=0 |
5. 性能测试
5.1 响应时间测试
| 用例编号 | 测试场景 | 性能指标 |
|---|---|---|
| PT-001 | 列表查询(10万条数据) | ≤ 500ms |
| PT-002 | 新增会员 | ≤ 300ms |
| PT-003 | 编辑会员 | ≤ 300ms |
| PT-004 | 重置密码 | ≤ 200ms |
5.2 并发测试
| 用例编号 | 测试场景 | 性能指标 |
|---|---|---|
| PT-010 | 100并发查询 | 成功率 ≥ 99% |
| PT-011 | 50并发新增 | 成功率 ≥ 99%,无数据重复 |
| PT-012 | 20并发重置密码 | 成功率 ≥ 99% |
6. 测试环境
6.1 环境要求
| 环境 | 配置 |
|---|---|
| 操作系统 | Windows 10 / macOS / Linux |
| 浏览器 | Chrome 最新版本 |
| 后端服务 | Java 17+, Spring Boot 3.3.x |
| 数据库 | MySQL 8.0 |
| 缓存 | Redis 7.x |
6.2 测试数据
- 准备至少50条会员测试数据
- 包含家长和教师两种身份类型
- 包含正常和停用两种状态
- 部分会员已绑定学生
7. 测试报告模板
| 项目 | 内容 |
|---|---|
| 测试人员 | |
| 测试日期 | |
| 测试版本 | |
| 总用例数 | |
| 通过数 | |
| 失败数 | |
| 阻塞数 | |
| 通过率 | |
| 遗留问题 |
文档结束