Files
railwaysystem/docs/reports/final-test-report.md
T

6.0 KiB
Raw Blame History

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/teacher
POST /train/course
POST /train/classroom
POST /train/plans
POST /train/plans/{id}/courses
POST /train/plans/{id}/enrollments
POST /train/plans/{id}/lessons
GET /train/plans/{id}/timetable
POST /train/plans/{id}/complete
基础资源就绪 → 拟定32位UUID计划 → 课程与师资绑定 → 学员报名入班(初始0) → 排课课次落库 → 课表聚合查询 → 计划结训联动在读学员状态流转至4且记录complete_time。 PASS
SC-02 学员报名异常规则与状态区分 (Enrollment Validation) POST /train/plans/{id}/enrollments
PUT /train/enrollments/{id}/status
1. 同一计划重复报名触发唯一索引拦截 (40030);
2. 招生容量上限超限拦截 (40031);
3. 不存在学员与停用学员 (status=0) 拒绝入班;
4. 独立维护学员主档状态与班级参训状态。
PASS
SC-03 排课预检 Warning 与 Hard Block 硬阻断 (Scheduling) POST /train/lessons/check-conflict
POST /train/plans/{id}/lessons
1. 教师冲突硬检,教室/场地/班级重叠 Warning 预警且不硬阻断保存;
2. 严格禁止 force/override 参数;
3. 非法起止时间倒挂拦截 (40010);
4. 场地 XOR 互斥硬阻断;
5. 已结束计划锁定排课 (40012)。
PASS
SC-04 电子班牌绑定与课表降级映射 (Electronic Board) POST /train/board
GET /train/classroom/{id}
GET /train/plans/{id}/timetable
DELETE /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}/complete
GET /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}/report
POST /train/attendance/sign-in
POST /train/attendance/sign-out
PUT /train/attendance/{checkinId}
1. 报到确认返回 reportId,学员状态强事务流转为 1:已报到 且写入 join_time;
2. 重复报到拦截 (40050);
3. 签到签退幂等性防覆盖(保持初次时间);
4. 人工考勤调整自动留痕 manual_flag=1。
PASS

3. 数据库断言与环境清理验证

在场景集成套件执行期间与执行完毕后,执行了针对底层 Kingbase 物理库的直接核查:

  1. 落库断言 (11/11 PASS):
    • 验证了教师主键持久化、学员密文与哈希完整性、开班计划状态标记、参训档案唯一性、课次场地互斥、报到流水完整性、结训联动更新记录数等 11 项关键 SQL 校验,准确率 100%。
  2. 物理清理门禁 (PASS, Residue: 0):
    • 测试套件在验证完毕后,触发受控清理机制,物理删除全部测试生成的临时学员、课次与开班计划;
    • 最终执行扫描确认:测试产生的数据残留为 0,生产数据库保持完全纯净。

4. 技术参考链接 (Technical References)