排课系统单元测试总报告
|
产品名称:排课系统 |
产品部门:软件开发部 |
|
版本号 :V1.0 |
语 种: 中文 |
|
开发工具:IntelliJ IDEA |
测试工具: JUnit 4、MockMvc、Mockito |
|
测试人员: 艾鑫 |
测试时间: 2025 年 05 月 29 日 |
|
测试要求: 验证各模块 CRUD 接口正确性、参数校验逻辑及服务层交互 |
|
|
测试内容: 对班级、课程、教室、排课、教师管理模块进行单元测试,覆盖接口功能、请求流程和依赖隔离 |
|
单元测试方案
1.原始班级管理模块:
|
模块功能 |
1. 班级信息条件查询与分页 |
|
|
现有资源 |
原始班级管理 |
ClassesControllerTest.java |
|
程序结构 |
功能点 |
涉及的方法 |
|
条件查询班级 |
|
|
|
|
新增班级 |
|
||
|
批量删除班级 |
方法:postTest2 功能说明:根据班级 ID 列表删除记录 |
|||
|
更新班级信息 |
方法:postTest2 |
|||
|
测试用例 |
测试功能点 |
用例描述 |
用例测试结果 |
|
|
分页查询班级 |
@Test
|
状态码 200,响应包含班级列表 |
||
|
新增班级(正常场景) |
@Test
|
状态码 200,日志显示新增成功 |
||
|
批量删除班级 |
@Test
|
状态码 200,数据库记录数减少 |
||
|
更新班级备注 |
@Test
|
状态码 200,数据库字段更新 |
||
|
测试结果 |
单元测试通过 |
|||
运行截图如下:
2.排课模块:
|
模块功能 |
1. 排课信息条件查询(按周次、课程、教室过滤) |
||
|
现有资源 |
排课管理模块 |
TaskControllerTest.java |
|
|
程序结构 |
功能点 |
涉及的方法 |
|
|
查询所有排课 |
|
||
|
条件查询排课 |
记录,排除无关数据。 |
||
|
批量删除排课 |
testDeleteByIds 方法:POST /task/deleteByIds |
||
|
新增排课计划 |
testAdd 方法:POST /task/add |
||
|
更新排课信息 |
testUpdate 方法:POST /task/update |
||
|
测试用例 |
测试功能点 |
用例描述 |
用例测试结果 |
|
查询所有排课 |
方法一:使用测试程序实现单元测试: @Test
|
状态码 200,响应内容与模拟结果一致 |
|
|
条件查询排课(按周次 + 班级) |
方法一:使用测试程序实现单元测试: @Test
|
状态码 200,结果包含预期周次和班级的排课 |
|
|
|
批量删除排课 |
方法一:使用测试程序实现单元测试: @Test
|
状态码 200,响应内容为 "success" |
|
新增排课(含关联对象) |
方法一:使用测试程序实现单元测试: @Test |
||
|
更新排课状态 |
方法一:使用测试程序实现单元测试: @Test |
||
|
测试结果 |
单元测试通过 |
||
程序运行截图:
3.课程班级管理
|
模块功能 |
1. 按课程条件查询班级信息 |
||
|
现有资源 |
课程班级管理 |
CclassesControllerTest.java |
|
|
程序结构 |
功能点 |
涉及的方法 |
|
|
带课程条件的班级查询 |
方法:postTest 功能说明:根据班级关联的课程信息检索班级 |
||
|
新增班级并关联课程 |
方法:postTest1 功能说明:创建班级并关联课程(通过课程 ID) |
||
|
重复新增班级验证 |
方法:postTest3 功能说明:测试同名班级或重复课程关联的处理逻辑 |
||
|
|
方法:postTest 功能说明:根据班级 ID 列表删除记录 |
||
|
测试用例 |
测试功能点 |
用例描述 |
用例测试结果 |
|
空条件查询班级(含课程关联) |
@Test
|
状态码 200,返回非空班级列表 |
|
|
新增班级并关联课程 ID=99 |
@Test
|
状态码 200,数据库新增记录 |
|
|
重复新增班级(同名测试) |
@Test
|
根据业务规则返回对应状态码 |
|
|
批量删除班级 ID=28 |
@Test
|
状态码 200,数据库记录删除 |
|
|
测试结果 |
单元测试通过 |
||
程序运行截图:
4.课程管理模块:
|
模块功能 |
1. 课程信息分页查询与条件检索 |
||
|
现有资源 |
课程管理 |
CourseControllerTest.java |
|
|
程序结构 |
功能点 |
涉及的方法 |
|
|
条件查询课程 |
方法:postTest 功能说明:按条件分页查询课程信息 |
||
|
新增课程 |
方法:postTest1 功能说明:创建新课程记录 |
||
|
批量删除课程 |
方法:postTest2 功能说明:根据课程 ID 列表批量删除记录 请求体:JSON 数组(如[11]) flag参数:删除标志(如false,代码中未明确用途) |
||
|
更新课程信息 |
方法:postTest3 功能说明:修改课程信息(需指定 ID) |
||
|
测试用例 |
测试功能点 |
用例描述 |
用例测试结果 |
|
分页查询课程 |
@Test
|
状态码 200,响应包含课程列表 |
|
|
新增课程(正常场景) |
@Test
|
状态码 200,日志显示新增成功 |
|
|
批量删除课程 ID=11 |
@Test
|
状态码 200,数据库记录数减少 |
|
|
更新课程代码 |
@Test
|
状态码 200,数据库字段更新 |
|
|
测试结果 |
单元测试通过 |
||
程序运行截图:
5. 教师管理模块:
|
模块功能 |
1. 教师信息分页查询与条件检索 |
||
|
程序结构 |
功能点 |
涉及的方法 |
|
|
条件查询教师 |
方法:POST /teacher/selectByCondition 功能说明:按工号、姓名或所属班级查询教师 |
||
|
新增教师 |
方法:POST /teacher/add 功能说明:创建教师档案并关联班级 |
||
|
批量删除教师
|
方法:POST /teacher/deleteByIds 功能说明:根据教师 ID 列表删除记录 |
||
|
更新教师课程 |
方法: POST /teacher/updateCourse 功能说明:修改教师负责的课程 |
||
|
测试用例 |
测试功能点 |
用例描述 |
用例测试结果 |
|
条件查询教师(模糊) |
操作步骤: |
界面返回符合条件的教师列表,无语法错误或空白页 |
|
|
新增教师记录 |
操作步骤:
|
提示框正确弹出,列表包含新记录,工号与班级关联正确 |
|
|
批量删除教师 |
操作步骤:
|
提示信息与删除数量一致,数据库记录同步删除 |
|
|
更新教师所属班级 |
操作步骤:
|
提示信息正确,字段更新与操作一致 |
|
|
测试结果 |
单元测试通过 |
||
6.教室管理模块:
|
模块功能 |
1. 教室信息分页查询与条件检索 |
||
|
现有资源 |
教室管理 |
RoomControllerTest.java |
|
|
程序结构 |
功能点 |
涉及的方法 |
|
|
分页查询教室 |
方法:postTest |
||
|
新增教室 |
方法:postTest1 功能说明:创建新教室记录 |
||
|
批量删除教室 |
方法:postTest2
|
||
|
更新教室信息 |
方法:postTest3 功能说明:根据教室 ID 列表批量删除记录 |
||
|
测试用例 |
测试功能点 |
用例描述 |
用例测试结果 |
|
分页查询教室 |
@Test
|
状态码 200,响应包含教室列表 |
|
|
新增教室(正常场景) |
@Test
|
状态码 200,日志显示新增成功 |
|
|
批量删除教室 ID=14 |
@Test
|
状态码 200,数据库记录数减少 |
|
|
更新教室容量 |
@Test
|
状态码 200,数据库字段更新 |
|
|
测试结果 |
单元测试通过 |
||
程序运行截图:
单元测试结论
|
单元模块测试覆盖情况:覆盖排课、原始班级、课程班级、课程、教师、教室管理模块的核心功能,包括查询、新增、删除、更新及关联逻辑,代码覆盖率均达 100% |
|
|
测试结果统计数据:共执行 25 个测试用例(排课 5 个、原始班级 4 个、课程班级 4 个、课程 4 个、教师 4 个、教室 4 个),25 个通过,0 个失败
|
|
|
主要问题和解决情况: 问题:部分模块未覆盖参数边界测试(如教室容量为负数、教师工号重复)
|
|
|
遗留问题: 1. 未完成模块间集成测试(如教师 - 班级 - 课程关联场景)
|
|
|
测试结论: 各模块单元测试通过,核心功能逻辑正确,满足需求,可进入集成测试阶段
|
|
|
开发经理签名: 艾鑫 |
日期:2025 年 5 月 29 日 |
|
备注:需在集成测试中验证跨模块数据一致性及系统性能稳定性
|
|

浙公网安备 33010602011771号