90 lines
5.8 KiB
Markdown
90 lines
5.8 KiB
Markdown
# 07. RailwaySystem 质量保障与自动化测试报告
|
||
|
||
> **文档定位**:面向质量审计人员、技术评测专家及交付团队的系统化测试与验收报告。
|
||
> **当前基线**:Final Candidate `5a49b2e2988bf23ca2a70568264c05b24dfda1b6` (`origin/feat/cicd-pipeline`)
|
||
|
||
---
|
||
|
||
## 1. 质量保障体系全景
|
||
|
||
RailwaySystem 建立了多层次的自动化测试与质量防护网络,确保从底层数据模型、服务契约、端到端接口到真实物理数据库的全链路正确性:
|
||
|
||
```mermaid
|
||
graph TD
|
||
L1["端到端浏览器验收 (E2E)<br/>Playwright 真实 UI 验收 · 0 阻断 / 0 个 500 · <b>PASS</b>"]
|
||
L2["核心业务场景集成 Gate (Scenario)<br/>6 大场景真实 HTTP 110 次请求全链路闭环 · <b>PASS</b>"]
|
||
L3["应用服务与契约测试 (Unit / Contract)<br/>154 项测试用例全覆盖 · 业务不变量与状态机转换 · <b>PASS</b>"]
|
||
L4["数据库物理断言与清理门禁 (DB Gate)<br/>11 项 Kingbase 物理表断言 · 0 脏数据残留 · <b>PASS</b>"]
|
||
|
||
L4 --> L3
|
||
L3 --> L2
|
||
L2 --> L1
|
||
```
|
||
|
||
---
|
||
|
||
## 2. 核心测试指标汇总看板
|
||
|
||
| 验证维度 | 衡量指标 | 目标要求 | 实测结果 | 门禁结论 |
|
||
| :--- | :--- | :---: | :---: | :---: |
|
||
| **后端单元与契约测试** | Maven Test Suite 执行用例数 | 100% 通过 | **154 / 154 PASS** | ✅ **通过** |
|
||
| **核心业务场景集成** | 真实业务链路场景套件 (Scenarios) | 全部通过 | **6 / 6 PASS** | ✅ **通过** |
|
||
| **真实 HTTP 接口探测**| 实际发起网络交互请求总数 | 覆盖主链路 | **110 次** | ✅ **就绪** |
|
||
| **服务端异常率** | HTTP 500 系统内部崩溃错误数 | 严格为 0 | **0 异常** | ✅ **通过** |
|
||
| **Kingbase 物理数据断言**| 数据库真实记录状态与约束断言 | 100% 一致 | **11 / 11 PASS** | ✅ **通过** |
|
||
| **环境清理与残留检验**| 测试数据回滚与物理删除验证 | 零残留 | **Cleaned (Residue: 0)**| ✅ **通过** |
|
||
| **端到端浏览器验收** | Playwright 真实交互验收套件 | 全流程通行 | **PASS** *(0 阻断 / 0 个 500)* | ✅ **通过** |
|
||
| **Swagger 接口文档平台** | 接口定义与 UI 正常加载探测 | 无 502/死链 | **PASS** *(入口: 系统工具→系统接口)* | ✅ **通过** |
|
||
|
||
---
|
||
|
||
## 3. 六大核心场景集成测试覆盖 (Scenarios)
|
||
|
||
针对铁路教务的最核心闭环,集成测试套件对以下六大关键业务场景进行了真实环境端到端验证:
|
||
|
||
1. **基础资源初始化与唯一性校验**:
|
||
- 教师档案录入(手机号唯一拦截 `40001`)、学员建档(敏感信息脱敏与哈希存储)、课程库建立与教室/实训场地可用性验证。
|
||
2. **开班计划拟定与课程师资绑定**:
|
||
- 创建 32 位 UUID 标识的开班计划(初始强制为 0:草稿)、绑定计划专属课程与授课教师、计划学时自动汇总。
|
||
3. **学员批量报名与容纳上限拦截**:
|
||
- 正常学员入班生成参训履历(初始 0:待报到);重复报名强行拦截(`40030 ENROLLMENT_ALREADY_EXISTS`);计划招生超额硬阻断(`40031 ENROLLMENT_CAPACITY_EXCEEDED`);停用学员拒绝报名。
|
||
4. **四维排课防重叠智能检测**:
|
||
- 课次编排预检;教师授课时间冲突检测(`40040`);场地与班级课次重叠软警告(Warning 不阻断,用户确认后正常保存);场地 XOR 互斥与起止时间非法硬拦截。
|
||
5. **现场开班报到与多模式核验**:
|
||
- 现场身份核验(人脸/刷卡/扫码/人工),写入报到流水,强事务联动参训档案流转为 1:已报到。
|
||
6. **结训联动与历史状态保护**:
|
||
- 计划结训触发强事务流转(计划置为 2:已结束);活动在读学员(状态为 0 或 1)自动流转为 4:已完成;历史退训学员(状态为 3)受到严格保护不被误覆盖。
|
||
|
||
---
|
||
|
||
## 4. 浏览器真实验收与 Swagger 验证结果
|
||
|
||
针对 Final Candidate 基线(Tested HEAD: `5a49b2e2988bf23ca2a70568264c05b24dfda1b6`)的端到端真实浏览器验收已全部完成,达成 `FINAL_BROWSER_ACCEPTANCE = PASS`:
|
||
|
||
* **Browser 交互状态**:`PASS`(Console blocker: `0`,HTTP 500: `0`)
|
||
* **Swagger 接口平台**:`PASS`
|
||
- 真实系统入口:`系统工具 → 系统接口`
|
||
- Swagger UI:正常加载,`v3/api-docs = 200`,`swagger-resources = 200`,无 502,无死链
|
||
* **主数据模块 (Master Data)**:Teacher PASS、Student PASS、Classroom PASS、Site PASS 均通过
|
||
* **核心业务模块 (Business)**:Plan PASS、PlanCourse PASS、Enrollment PASS 均通过
|
||
* **报到核验 (Report Confirm)**:`PASS`,真实调用 `POST /train/enrollments/{enrollmentId}/report` 返回 200 OK,待报到 → 已报到
|
||
* **排课冲突处理 (Scheduling)**:
|
||
- Warning Cancel = `PASS`
|
||
- Warning Confirm/Save = `PASS`
|
||
- 逻辑中严格禁止且无 `force` / `ignoreConflict` / `overrideConflict` 旁路
|
||
- 课次详情 GET 查询:`Lesson detail GET: NOT CALLED`
|
||
* **电子班牌 (Board)**:`PASS`(前端路由:`/equip/board`)
|
||
* **统计分析报表 (Analytics)**:Report Analytics、Checkin Analytics、Duration、Portrait 均为 `PASS / Read Only`
|
||
* **系统操作日志 (OperLog)**:`PASS`
|
||
* **系统工具实际可见**:表单构建、代码生成、系统接口
|
||
* **角色分配管理**:`RBAC_ROLE_ASSIGNMENT: ENVIRONMENT_CONFIGURATION`
|
||
* **验收数据审计策略**:`Browser acceptance created/changed data: KEEP_FOR_AUDIT`(文档验收阶段留存用于审计追溯,不执行清理)
|
||
|
||
---
|
||
|
||
## 5. 技术参考链接 (Technical References)
|
||
|
||
* 核心测试矩阵明细:[docs/_meta/core-business-test-matrix.md](../_meta/core-business-test-matrix.md)
|
||
* 最终测试综合报告:[docs/reports/final-test-report.md](../reports/final-test-report.md)
|
||
* 浏览器端到端验收进度:[docs/reports/browser-acceptance-report.md](../reports/browser-acceptance-report.md)
|