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

69 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RailwaySystem Final Candidate 综合测试验收报告
> **文档定位**:全方位记录当前交付候选版本在单元、契约、场景集成、物理数据库及清理门禁等方面的最终测试验收结果。
> **基线版本**:Final Candidate `5a49b2e2988bf23ca2a70568264c05b24dfda1b6` (`origin/feat/cicd-pipeline`)
> **报告生成时间**:2026-09-15
> **总体验收结论**:✅ **CORE BACKEND & INTEGRATION ACCEPTANCE PASS**
---
## 1. 测试执行概况
本轮测试在完全模拟生产的 KingbaseES 国产高安全数据库与真实 Spring Boot 容器环境下执行,涵盖了应用服务单元测试、API 契约测试、跨模块业务场景端到端集成测试及物理落库断言。
```mermaid
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`<br>`POST /train/course`<br>`POST /train/classroom`<br>`POST /train/plans`<br>`POST /train/plans/{id}/courses`<br>`POST /train/plans/{id}/enrollments`<br>`POST /train/plans/{id}/lessons`<br>`GET /train/plans/{id}/timetable`<br>`POST /train/plans/{id}/complete` | 基础资源就绪 → 拟定32位UUID计划 → 课程与师资绑定 → 学员报名入班(初始0) → 排课课次落库 → 课表聚合查询 → 计划结训联动在读学员状态流转至4且记录complete_time。 | **PASS** |
| **SC-02** | **学员报名异常规则与状态区分 (Enrollment Validation)** | `POST /train/plans/{id}/enrollments`<br>`PUT /train/enrollments/{id}/status` | 1. 同一计划重复报名触发唯一索引拦截 (`40030`);<br>2. 招生容量上限超限拦截 (`40031`);<br>3. 不存在学员与停用学员 (`status=0`) 拒绝入班;<br>4. 独立维护学员主档状态与班级参训状态。 | **PASS** |
| **SC-03** | **排课预检 Warning 与 Hard Block 硬阻断 (Scheduling)** | `POST /train/lessons/check-conflict`<br>`POST /train/plans/{id}/lessons` | 1. 教师冲突硬检,教室/场地/班级重叠 Warning 预警且不硬阻断保存;<br>2. 严格禁止 force/override 参数;<br>3. 非法起止时间倒挂拦截 (`40010`);<br>4. 场地 XOR 互斥硬阻断;<br>5. 已结束计划锁定排课 (`40012`)。 | **PASS** |
| **SC-04** | **电子班牌绑定与课表降级映射 (Electronic Board)** | `POST /train/board`<br>`GET /train/classroom/{id}`<br>`GET /train/plans/{id}/timetable`<br>`DELETE /train/board/{id}` | 1. 自动生成32位UUID主键,默认在线状态 `board_status=0`;<br>2. 教室详情返回绑定班牌数组 (0/1/N);<br>3. 课表 `boardSn` 降级规则:0块为null,1块为对应SN,>1块降级为null;<br>4. 逻辑删除置 `del_flag='2'`。 | **PASS** |
| **SC-05** | **结训生命周期与退训学员保护 (Plan Completion Lifecycle)** | `POST /train/plans/{id}/complete`<br>`GET /train/plans/{id}`<br>`GET /train/enrollments/{id}` | 1. 计划状态更新为 `2:已结束`;<br>2. 本班在读活动学员 (状态0/1) 自动联动更新为 `4:已完成` 且写入 `complete_time`;<br>3. 历史退训学员 (状态3) 保持不变,杜绝误覆盖。 | **PASS** |
| **SC-06** | **现场报到与课堂考勤完整闭环 (Report & Attendance Lifecycle)** | `POST /train/enrollments/{id}/report`<br>`POST /train/attendance/sign-in`<br>`POST /train/attendance/sign-out`<br>`PUT /train/attendance/{checkinId}` | 1. 报到确认返回 `reportId`,学员状态强事务流转为 `1:已报到` 且写入 `join_time`;<br>2. 重复报到拦截 (`40050`);<br>3. 签到签退幂等性防覆盖(保持初次时间);<br>4. 人工考勤调整自动留痕 `manual_flag=1`。 | **PASS** |
---
## 3. 数据库断言与环境清理验证
在场景集成套件执行期间与执行完毕后,执行了针对底层 Kingbase 物理库的直接核查:
1. **落库断言 (11/11 PASS)**:
- 验证了教师主键持久化、学员密文与哈希完整性、开班计划状态标记、参训档案唯一性、课次场地互斥、报到流水完整性、结训联动更新记录数等 11 项关键 SQL 校验,准确率 100%。
2. **物理清理门禁 (PASS, Residue: 0)**:
- 测试套件在验证完毕后,触发受控清理机制,物理删除全部测试生成的临时学员、课次与开班计划;
- 最终执行扫描确认:**测试产生的数据残留为 0,生产数据库保持完全纯净**。
---
## 4. 技术参考链接 (Technical References)
* 核心测试矩阵事实源:[docs/_meta/core-business-test-matrix.md](../_meta/core-business-test-matrix.md)
* 业务流程与状态机:[docs/handbook/02-business-process.md](../handbook/02-business-process.md)
* 浏览器端到端验收报告:[browser-acceptance-report.md](browser-acceptance-report.md)
* 发版说明:[release-notes.md](release-notes.md)