5.0 KiB
5.0 KiB
测试报告 - 模块三:考题管理
测试日期:2026-01-09 测试人员:AI测试工程师 测试环境:Spring Boot 3.1.2 / MySQL 8.0 / JDK 17
一、测试概要
| 项目 | 数值 |
|---|---|
| 测试用例总数 | 11 |
| 通过 | 0 |
| 失败 | 3 |
| 阻塞 | 8 |
| 通过率 | 0% |
注意: 与知识库模块相同,创建题目时也存在creator_id未设置的问题,导致大部分测试被阻塞。
二、测试结果详情
2.1 题型测试(Q系列)
| 用例编号 | 测试项 | 预期结果 | 实际结果 | 状态 |
|---|---|---|---|---|
| Q-001 | 创建单选题(4选项) | 成功创建 | creator_id字段缺失导致失败 | 阻塞 |
| Q-002 | 创建多选题 | 成功创建 | 依赖Q-001 | 阻塞 |
| Q-003 | 创建判断题 | 成功创建 | 依赖Q-001 | 阻塞 |
| Q-004 | 单选题设置多个答案 | 提示错误 | 依赖Q-001 | 阻塞 |
| Q-005 | 多选题只设置一个答案 | 提示错误 | 依赖Q-001 | 阻塞 |
| Q-006 | 题目必须填写解析 | 提示必填 | 依赖Q-001 | 阻塞 |
2.2 题目状态管理测试(QS系列)
| 用例编号 | 测试项 | 预期结果 | 实际结果 | 状态 |
|---|---|---|---|---|
| QS-001 | 草稿题目发布 | 状态变为PUBLISHED | 依赖题目数据 | 阻塞 |
| QS-002 | 下架被试卷引用的题目 | 显示警告确认 | 依赖题目数据 | 阻塞 |
| QS-003 | 只有已发布题目可被组卷 | 草稿/下架题目不可选 | 依赖题目数据 | 阻塞 |
2.3 部门隔离测试(QD系列)
| 用例编号 | 测试项 | 预期结果 | 实际结果 | 状态 |
|---|---|---|---|---|
| QD-001 | 讲师只能管理本部门题库 | 其他部门不可操作 | 讲师可创建其他部门题库分类(ID=4) | 失败 |
| QD-002 | 学员无法访问题目管理 | 返回403 | 返回200,可查询题目列表 | 失败 |
三、缺陷清单
BUG-Q-001:创建题目时creator_id未设置
| 属性 | 描述 |
|---|---|
| 缺陷编号 | BUG-Q-001 |
| 关联用例 | Q-001及所有依赖用例 |
| 严重程度 | 阻断 |
| 优先级 | P0 |
| 缺陷描述 | 创建题目时未设置creator_id字段,导致数据库插入失败 |
| 重现步骤 | 1. 管理员登录 2. POST /api/exam/question 创建题目 3. 返回500错误 |
| 错误信息 | Field 'creator_id' doesn't have a default value |
| 预期结果 | 题目创建成功 |
| 实际结果 | 500服务器内部错误 |
| 建议修复 | 在QuestionServiceImpl.createQuestion()方法中,从SecurityContext获取当前用户ID并设置到question.setCreatorId() |
与BUG-KM-001为同类问题,建议统一修复。
BUG-Q-002:讲师可以操作其他部门的题库分类
| 属性 | 描述 |
|---|---|
| 缺陷编号 | BUG-Q-002 |
| 关联用例 | QD-001 |
| 严重程度 | 高 |
| 优先级 | P1 |
| 缺陷描述 | 讲师角色可以创建其他部门的题库分类,未实现部门隔离 |
| 重现步骤 | 1. 讲师账号登录(部门1) 2. POST /api/exam/question-category 创建分类,departmentId设为2 3. 分类创建成功 |
| 预期结果 | 返回403或400错误 |
| 实际结果 | 分类创建成功,返回ID=4 |
| 建议修复 | 在QuestionCategoryService中校验当前用户部门与操作数据部门是否一致 |
BUG-Q-003:学员可以访问题目管理接口
| 属性 | 描述 |
|---|---|
| 缺陷编号 | BUG-Q-003 |
| 关联用例 | QD-002 |
| 严重程度 | 严重 |
| 优先级 | P0 |
| 缺陷描述 | 学员角色可以访问题目管理接口 |
| 重现步骤 | 1. 学员账号登录 2. GET /api/exam/question/page 3. 成功返回题目列表 |
| 预期结果 | 返回403 Forbidden |
| 实际结果 | 返回200 OK |
| 建议修复 | 在QuestionController上添加角色权限控制 |
四、测试覆盖接口
| 接口 | 方法 | 测试状态 |
|---|---|---|
| /api/exam/question | POST | 已测试(失败) |
| /api/exam/question/page | GET | 已测试 |
| /api/exam/question-category | POST | 已测试 |
| /api/exam/question-category/tree | GET | 已测试 |
五、结论与建议
5.1 测试结论
考题管理模块存在3个缺陷,其中2个为严重/阻断级别:
- P0 阻断级:创建题目时creator_id未设置 - 导致整个模块功能不可用
- P0 严重级:学员权限未控制
- P1 高优先级:讲师部门隔离未实现
5.2 共性问题说明
此模块发现的问题与员工管理、知识库模块存在共性:
- creator_id未设置:知识库、考题管理
- 学员权限未控制:员工管理、题目管理
- 讲师部门隔离未实现:知识库分类、题库分类
建议进行全局修复。
5.3 阻塞说明
由于BUG-Q-001为阻断级缺陷,以下测试需要在修复后重新执行:
- Q系列(题型测试):6个用例
- QS系列(状态管理):3个用例
报告生成时间: 2026-01-09 15:26:00