6.0 KiB
6.0 KiB
RailwaySystem Final Candidate 综合测试验收报告
文档定位:全方位记录当前交付候选版本在单元、契约、场景集成、物理数据库及清理门禁等方面的最终测试验收结果。 基线版本:Final Candidate
5a49b2e2988bf23ca2a70568264c05b24dfda1b6(origin/feat/cicd-pipeline) 报告生成时间:2026-09-15 总体验收结论:✅ CORE BACKEND & INTEGRATION ACCEPTANCE PASS
1. 测试执行概况
本轮测试在完全模拟生产的 KingbaseES 国产高安全数据库与真实 Spring Boot 容器环境下执行,涵盖了应用服务单元测试、API 契约测试、跨模块业务场景端到端集成测试及物理落库断言。
graph LR
T1["后端单元/契约测试<br/>154/154 PASS"] --> T2["业务场景集成<br/>6/6 PASS"]
T2 --> T3["HTTP API探测<br/>110次 0次500 PASS"]
T3 --> T4["Kingbase物理断言<br/>11/11 PASS"]
T4 --> T5["环境清理门禁<br/>0残留 PASS"]
style T1 fill:#1a3a2a,stroke:#52c41a,stroke-width:2px;
style T2 fill:#1a3a2a,stroke:#52c41a,stroke-width:2px;
style T3 fill:#1a3a2a,stroke:#52c41a,stroke-width:2px;
style T4 fill:#1a3a2a,stroke:#52c41a,stroke-width:2px;
style T5 fill:#1a3a2a,stroke:#52c41a,stroke-width:2px;
| 测试大项 | 执行用例数 | 通过数 | 失败数 | 结论 |
|---|---|---|---|---|
| 1. 后端应用服务与契约测试 (Maven) | 154 | 154 | 0 | ✅ PASS |
| 2. 核心业务主链场景套件 (Scenarios) | 6 | 6 | 0 | ✅ PASS |
| 3. 真实网络 HTTP API 探测调用 | 110 | 110 | 0 | ✅ PASS |
| 4. 服务端 500 异常捕获率 | - | - | 0 | ✅ PASS (0 异常) |
| 5. Kingbase 物理表持久化断言 | 11 | 11 | 0 | ✅ PASS |
| 6. 数据物理清理与零残留门禁 (Cleanup) | - | - | - | ✅ PASS (Residue: 0) |
2. 核心业务场景集成测试明细 (6/6 PASS)
| 编号 | 测试场景名称 | 涉及核心接口与操作 | 物理数据库断言与验证点 | 实测结果 |
|---|---|---|---|---|
| SC-01 | 完整正向业务闭环全链 (Happy Path Full Business Chain) | POST /train/teacherPOST /train/coursePOST /train/classroomPOST /train/plansPOST /train/plans/{id}/coursesPOST /train/plans/{id}/enrollmentsPOST /train/plans/{id}/lessonsGET /train/plans/{id}/timetablePOST /train/plans/{id}/complete |
基础资源就绪 → 拟定32位UUID计划 → 课程与师资绑定 → 学员报名入班(初始0) → 排课课次落库 → 课表聚合查询 → 计划结训联动在读学员状态流转至4且记录complete_time。 | PASS |
| SC-02 | 学员报名异常规则与状态区分 (Enrollment Validation) | POST /train/plans/{id}/enrollmentsPUT /train/enrollments/{id}/status |
1. 同一计划重复报名触发唯一索引拦截 (40030);2. 招生容量上限超限拦截 ( 40031);3. 不存在学员与停用学员 ( status=0) 拒绝入班;4. 独立维护学员主档状态与班级参训状态。 |
PASS |
| SC-03 | 排课预检 Warning 与 Hard Block 硬阻断 (Scheduling) | POST /train/lessons/check-conflictPOST /train/plans/{id}/lessons |
1. 教师冲突硬检,教室/场地/班级重叠 Warning 预警且不硬阻断保存; 2. 严格禁止 force/override 参数; 3. 非法起止时间倒挂拦截 ( 40010);4. 场地 XOR 互斥硬阻断; 5. 已结束计划锁定排课 ( 40012)。 |
PASS |
| SC-04 | 电子班牌绑定与课表降级映射 (Electronic Board) | POST /train/boardGET /train/classroom/{id}GET /train/plans/{id}/timetableDELETE /train/board/{id} |
1. 自动生成32位UUID主键,默认在线状态 board_status=0;2. 教室详情返回绑定班牌数组 (0/1/N); 3. 课表 boardSn 降级规则:0块为null,1块为对应SN,>1块降级为null;4. 逻辑删除置 del_flag='2'。 |
PASS |
| SC-05 | 结训生命周期与退训学员保护 (Plan Completion Lifecycle) | POST /train/plans/{id}/completeGET /train/plans/{id}GET /train/enrollments/{id} |
1. 计划状态更新为 2:已结束;2. 本班在读活动学员 (状态0/1) 自动联动更新为 4:已完成 且写入 complete_time;3. 历史退训学员 (状态3) 保持不变,杜绝误覆盖。 |
PASS |
| SC-06 | 现场报到与课堂考勤完整闭环 (Report & Attendance Lifecycle) | POST /train/enrollments/{id}/reportPOST /train/attendance/sign-inPOST /train/attendance/sign-outPUT /train/attendance/{checkinId} |
1. 报到确认返回 reportId,学员状态强事务流转为 1:已报到 且写入 join_time;2. 重复报到拦截 ( 40050);3. 签到签退幂等性防覆盖(保持初次时间); 4. 人工考勤调整自动留痕 manual_flag=1。 |
PASS |
3. 数据库断言与环境清理验证
在场景集成套件执行期间与执行完毕后,执行了针对底层 Kingbase 物理库的直接核查:
- 落库断言 (11/11 PASS):
- 验证了教师主键持久化、学员密文与哈希完整性、开班计划状态标记、参训档案唯一性、课次场地互斥、报到流水完整性、结训联动更新记录数等 11 项关键 SQL 校验,准确率 100%。
- 物理清理门禁 (PASS, Residue: 0):
- 测试套件在验证完毕后,触发受控清理机制,物理删除全部测试生成的临时学员、课次与开班计划;
- 最终执行扫描确认:测试产生的数据残留为 0,生产数据库保持完全纯净。
4. 技术参考链接 (Technical References)
- 核心测试矩阵事实源:docs/_meta/core-business-test-matrix.md
- 业务流程与状态机:docs/handbook/02-business-process.md
- 浏览器端到端验收报告:browser-acceptance-report.md
- 发版说明:release-notes.md