Skip to content

实战:用户管理系统设计测试用例

1.业务逻辑

用户管理系统分为:用户管理、角色(功能权限、数据权限)模块

  1. 用户管理: 存储用户信息,包含:用户昵称、手机号、用户名称、归属部门、邮箱、性别、岗位、备注等信息

  2. 用户需绑定角色,角色包含:功能权限、数据权限

  3. 功能权限是基于RBAC 权限模型(全称是 Role-Based Access Control 基于角色的访问控制)设计的 alt text 简单说就是:每个用户拥有若干角色,每个角色拥有若干个菜单,菜单中存在菜单权限、按钮权限。这样,就形成了 "用户<->角色<->菜单" 的授权模型。

  4. 数据权限是用户可以操作指定范围的数据,例:

用户数据范围
普通员工自己
部门领导所属部门的所有员工
HR整个公司的所有员工

系统中角色会绑定实际数据权限,目前内置数据权限有5类 alt text

用户数据范围
全部数据权限无数据权限的限制。
指定部门数据权限根据实际需要,设置可操作的部门。
本部门数据权限只能操作用户所在的部门。
本部门及以下数据权限在【本部门数据权限】的基础上,额外可操作子部门。
仅本人数据权限相对特殊,只能操作自己的数据。

2.数据表结构

在这种模型中,用户与角色、角色与菜单之间构成了多对多的关系,如下图 alt text

3.用例设计思路

确保RBAC权限模型的各个方面都被覆盖,包括用户信息管理、角色及其功能权限和数据权限的创建、编辑、删除。同时,验证权限的分配、继承、冲突解决以及用户对系统功能的实际访问情况,以全面测试系统的用户认证、授权以及数据访问控制功能

4.测试用例

4.1 用户管理测试用例

测试用例编号测试场景输入预期结果
1.1创建新用户用户昵称:张三,手机号:12345678901,用户名称:zhangsan,归属部门:销售部,邮箱:zhangsan@example.com,性别:,岗位:销售,备注:用户创建成功,用户列表中显示新用户
1.2编辑用户信息用户名称:zhangsan 修改为 lisi用户信息更新成功,用户列表中显示更新后的用户信息
1.3删除用户用户名称:zhangsan用户删除成功,用户列表中不再显示该用户
1.4用户绑定角色用户名称:zhangsan,角色:销售代表角色绑定成功,用户角色列表中显示新角色
1.5用户解绑角色用户名称:zhangsan,角色:销售代表角色解绑成功,用户角色列表中不再显示该角色

4.2 角色管理测试用例

测试用例编号测试场景输入预期结果
2.1创建新角色角色名称:销售经理角色创建成功,角色列表中显示新角色
2.2编辑角色信息角色名称:销售经理 修改为 销售主管角色信息更新成功,角色列表中显示更新后的角色名称
2.3删除角色角色名称:销售经理角色删除成功,角色列表中不再显示该角色
2.4分配功能权限角色名称:销售经理,菜单:客户管理菜单权限分配成功,角色菜单列表中显示客户管理
2.5撤销功能权限角色名称:销售经理,菜单:客户管理菜单权限撤销成功,角色菜单列表中不再显示客户管理
2.6分配数据权限角色名称:销售经理,数据权限:本部门数据权限数据权限分配成功,角色数据权限列表中显示本部门数据权限
2.7撤销数据权限角色名称:销售经理,数据权限:本部门数据权限数据权限撤销成功,角色数据权限列表中不再显示本部门数据权限

4.3 角色权限继承测试用例

测试用例编号测试场景输入预期结果
3.1子角色继承父角色权限父角色:超级管理员,子角色:测试账号子角色继承父角色的所有权限,角色菜单列表中显示所有菜单
3.2子角色覆盖父角色权限父角色:超级管理员,子角色:测试账号,菜单:系统管理(撤销)子角色覆盖父角色的权限,角色菜单列表中不再显示系统管理

4.4 角色权限冲突测试用例

测试用例编号测试场景输入预期结果
4.1角色权限冲突角色:测试账号,菜单:系统管理(分配),基础设施(撤销)系统提示权限冲突,要求用户确认权限分配
4.2解决权限冲突角色:测试账号,菜单:系统管理(分配),基础设施(撤销)用户确认权限分配,系统更新角色菜单列表

4.5 功能权限测试用例

测试用例编号测试场景输入预期结果
5.1用户登录并访问权限内的菜单用户名:zhangsan,角色:销售代表,菜单:客户管理用户可以访问客户管理菜单
5.2用户登录并尝试访问权限外的菜单用户名:zhangsan,角色:销售代表,菜单:财务管理用户无法访问财务管理菜单,系统提示无权限
5.3用户登录并访问多个角色的权限用户名:zhangsan,角色:销售代表销售经理,菜单:客户管理订单管理用户可以访问客户管理订单管理菜单

4.6 数据权限测试用例

测试用例编号测试场景输入预期结果
4.1普通员工查看数据用户名:zhangsan,角色:普通员工用户只能查看自己的数据
4.2部门领导查看数据用户名:lisi,角色:部门领导用户可以查看所属部门的所有员工数据
4.3HR查看数据用户名:wangwu,角色:HR用户可以查看整个公司的所有员工数据
4.4指定部门数据权限用户名:zhangsan,角色:销售代表,数据权限:指定部门数据权限用户只能查看指定部门的数据
4.5本部门及以下数据权限用户名:lisi,角色:部门领导,数据权限:本部门及以下数据权限用户可以查看本部门及子部门的所有数据

4.7 用户登录验证测试用例

测试用例编号测试场景输入预期结果
7.1用户成功登录用户名:zhangsan,密码:correctpassword用户成功登录系统
7.2用户密码错误登录用户名:zhangsan,密码:wrongpassword系统提示密码错误,拒绝登录
7.3用户名不存在登录用户名:unknownuser,密码:任意系统提示用户名不存在,拒绝登录
7.4用户被停用登录用户名:disableduser,密码:correctpassword系统提示用户已被停用,拒绝登录
7.5用户首次登录后修改密码用户名:newuser,密码:initialpassword,新密码:newpassword用户成功登录并修改密码,使用新密码可以再次成功登录
7.6用户多次输入错误密码用户名:zhangsan,密码:连续输入wrongpassword三次账户被暂时锁定,系统提示账户锁定信息
7.7用户登录后会话超时用户名:zhangsan,密码:correctpassword,等待超过会话超时时间会话超时,用户需要重新登录

5.测试用例说明

  • 用户管理:验证用户信息的创建、编辑、删除以及角色绑定和解绑功能是否正常工作。
  • 用户登录验证:验证用户登录功能,包括成功登录、密码错误、用户名不存在、账户锁定以及会话超时等场景。
  • 数据权限:验证用户是否能根据其角色的数据权限访问指定范围的数据。
  • 角色创建和编辑:验证角色的创建、编辑和删除功能是否正常工作。
  • 菜单权限分配:验证菜单权限的分配和撤销功能是否正常工作,包括单个和多个菜单权限的分配和撤销。
  • 权限验证:验证用户登录后是否可以访问分配的菜单权限,以及是否可以访问未分配的菜单权限。
  • 角色权限继承:验证子角色是否可以继承父角色的权限,以及是否可以覆盖父角色的权限。
  • 角色权限冲突:验证系统是否可以检测到权限冲突,并提示用户进行确认。