5.9 KiB
5.9 KiB
07. RailwaySystem 质量保障与自动化测试报告
文档定位:面向质量审计人员、技术评测专家及交付团队的系统化测试与验收报告。 当前基线:Final Candidate
5a49b2e2988bf23ca2a70568264c05b24dfda1b6(origin/feat/cicd-pipeline)
1. 质量保障体系全景
RailwaySystem 建立了多层次的自动化测试与质量防护网络,确保从底层数据模型、服务契约、端到端接口到真实物理数据库的全链路正确性:
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)
针对铁路教务的最核心闭环,集成测试套件对以下六大关键业务场景进行了真实环境端到端验证:
- 基础资源初始化与唯一性校验:
- 教师档案录入(手机号唯一拦截
40001)、学员建档(敏感信息脱敏与哈希存储)、课程库建立与教室/实训场地可用性验证。
- 教师档案录入(手机号唯一拦截
- 开班计划拟定与课程师资绑定:
- 创建 32 位 UUID 标识的开班计划(初始强制为 0:草稿)、绑定计划专属课程与授课教师、计划学时自动汇总。
- 学员批量报名与容纳上限拦截:
- 正常学员入班生成参训履历(初始 0:待报到);重复报名强行拦截(
40030 ENROLLMENT_ALREADY_EXISTS);计划招生超额硬阻断(40031 ENROLLMENT_CAPACITY_EXCEEDED);停用学员拒绝报名。
- 正常学员入班生成参训履历(初始 0:待报到);重复报名强行拦截(
- 四维排课防重叠智能检测:
- 课次编排预检;教师授课时间冲突检测(
40040);场地与班级课次重叠软警告(Warning 不阻断,用户确认后正常保存);场地 XOR 互斥与起止时间非法硬拦截。
- 课次编排预检;教师授课时间冲突检测(
- 现场开班报到与多模式核验:
- 现场身份核验(人脸/刷卡/扫码/人工),写入报到流水,强事务联动参训档案流转为 1:已报到。
- 结训联动与历史状态保护:
- 计划结训触发强事务流转(计划置为 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
- Warning Cancel =
- 电子班牌 (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(文档验收阶段留存用于审计追溯,不执行清理)