
1) 【一句话结论】设计测试用例验证教师登录后仅能访问其关联的班级成绩,禁止跨班级查看,并覆盖班级ID无效、多班级关联等边界情况,确保数据访问控制符合《个人信息保护法》要求。
2) 【原理/概念讲解】数据访问控制的核心是“基于角色的访问控制(RBAC)”,系统通过为教师角色绑定“仅本班”的权限规则,用户登录后,系统根据角色和绑定的班级ID,动态校验成绩查询请求的合法性。比如,教师账号与班级1关联,登录后只能访问班级1的成绩,系统通过角色-班级的绑定关系,实现数据隔离,防止越权访问。类比:就像老师只能批改自己班级的作业,系统通过角色绑定班级,确保数据不泄露。
3) 【对比与适用场景】
| 模型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| RBAC(基于角色的访问控制) | 按角色分配权限,用户属于角色,角色关联权限 | 角色是权限的集合,用户通过角色获得权限,权限与角色绑定,权限规则静态配置 | 组织内角色固定(如教师、管理员),权限规则明确(如教师仅查本班成绩) | 角色与权限绑定较僵化,动态调整角色或权限需手动配置 |
| ABAC(基于属性的访问控制) | 权限基于用户属性、资源属性、环境属性等动态判断 | 权限校验动态,根据实时属性计算 | 需要复杂属性管理,适合权限变化频繁的场景 | 实现复杂,需维护属性库 |
4) 【示例】
POST /api/login,参数:username=teacherA, password=123,预期:返回token(如"token=abc123")。GET /api/grades?classId=1&token=abc123,预期:状态码200,返回本班成绩列表。GET /api/grades?classId=2&token=abc123,预期:状态码403,错误信息“无权限访问其他班级成绩”。GET /api/grades?classId=999&token=abc123,预期:状态码400,错误信息“班级ID无效”。5) 【面试口播版答案】(约80秒)
“面试官您好,针对《个人信息保护法》要求教师仅能查看本班学员成绩,我设计测试用例验证数据访问控制。核心是验证教师登录后,本班成绩可正常访问,跨班级访问被拒绝,并覆盖班级ID无效、多班级关联等边界情况。具体来说,首先用教师账号登录系统,检查本班成绩是否完整显示(正常流程);然后尝试查看其他班级成绩,预期系统会提示无权限或返回错误信息(异常流程);再测试班级ID为空或无效的情况,预期返回400错误;最后验证教师关联多个班级时,是否仍能查其他班级成绩,预期同样被拒绝。这样能确保权限规则正确,数据隔离有效,符合隐私保护要求。”
6) 【追问清单】
user_role、role_permission、class_permission),确认教师角色仅关联本班权限,其他班级无关联;或通过接口日志验证请求的权限校验逻辑,确保在处理成绩请求时,根据用户角色和班级ID进行校验。7) 【常见坑/雷区】