测试质量验证:交付 Round 3A 管理员端浏览器 E2E 自动化测试与完整验收证据

This commit is contained in:
wangzhibiao committed 2026-09-16 23:22:49 +08:00
1 parent 85b3e7fcd4
commit caf7b131f8
35 files changed
+1348

No files matched your search

@@ -0,0 +1,30 @@
# Round 3A 一期综合验收总结与证据索引
- **验收轮次**: ROUND 3A — ADMIN BROWSER E2E + DMS UI
- **执行时间**: 2026-09-16 19:22:00
- **运行 ID**: `INT_QA_R3A_20260916_190300`
- **代码分支**: `qa/integrated-acceptance-20260916`
- **基础提交 (ROUND3A_BASE_HEAD)**: `13511550fec95400d4a3401ae0a04303e22b3937`
- **验收环境模式**: `TAILSCALE_BASTION` (Mac 脱离 192.168.139.0/24,通过 100.70.157.41 建立 SSH 端口转发隧道 `127.0.0.1:14321` 访问 Kingbase QA 数据库)
- **隔离状态**:
- `PRODUCTION_DB_WRITE_COUNT`: 0
- `PRODUCTION_BROWSER_MUTATION_COUNT`: 0
- `REAL_DMS_DEVICE_WRITE_COUNT`: 0
- `REMOTE_UNLOCK_CALL_COUNT`: 0
- `PRODUCTION_PUSH`: NO
- `PRODUCTION_DEPLOY`: NO
## 报告索引
1. [网络环境报告](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/network-environment.md)
2. [运行时环境报告](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/environment.md)
3. [管理员页面导航验证结果](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/admin-navigation-results.md)
4. [标准业务浏览器流程](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/standard-browser-flow.md)
5. [排课浏览器与冲突验证](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/scheduling-browser-results.md)
6. [考勤浏览器验证结果](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/attendance-browser-results.md)
7. [住宿与调房浏览器验证结果](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/accommodation-browser-results.md)
8. [DMS 管理 UI 验证结果](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/dms-admin-ui-results.md)
9. [一次性密码凭据展示验证 (ADMIN_ONE_TIME_DISPLAY)](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/one-time-credential-results.md)
10. [浏览器错误门禁统计](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/browser-error-summary.md)
11. [运行时安全审计报告](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/security-runtime-results.md)
12. [缺陷发现与修复清单](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/defects-found-and-fixed.md)
13. [Round 3A 总体执行总结](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/round-3a-summary.md)
@@ -0,0 +1,19 @@
# 住宿与调房浏览器验证报告 (ACCOMMODATION_BROWSER)
## 验证项
1. **住宿管理列表**: 完整列出学员房间、床位号、入住时间、退宿时间。
2. **办理入住**: 预分配学员一键办理入住手续。
3. **办理调房 (Room A -> Room B)**:
- 调房弹窗选择新房间与新床位号。
- 提交成功完成调房。
4. **单在用约束校验 (Active Constraint)**:
- 查看【住宿履历】,原房间状态更新为“已调房 (TRANSFERRED)”。
- 新房间状态为“当前在住 (ACTIVE)”。
- **严格确认:同一 enrollment 仅存在一个生效中 (ACTIVE) 的住宿记录!**
5. **退宿办理**: 办理退宿后状态变为“已退宿 (CHECKED_OUT)”。
**证据截图**:
- 住宿列表: [11_accommodation.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/11_accommodation.png)
- 调房与履历: [12_room_transfer.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/12_room_transfer.png)
**输出结论**: `ACCOMMODATION_BROWSER = PASS`
@@ -0,0 +1,20 @@
# 管理员页面导航验证结果 (ADMIN_NAVIGATION)
| 页面名称 | 路由路径 | 对应组件 | 加载状态 | 分页/筛选/详情 | 证据截图 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| 系统首页仪表盘 | `/index` | `views/index.vue` | 正常 | 正常 | [01_admin_dashboard.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/01_admin_dashboard.png) |
| 教师管理 | `/person/teacher` | `train/teacher` | 正常 | 正常 | [02_teacher_list.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/02_teacher_list.png) |
| 学员管理 | `/person/student` | `train/student` | 正常 | 正常 | [03_student_list.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/03_student_list.png) |
| 培训计划 | `/coursemgr/plan` | `train/plan` | 正常 | 正常 | [04_plan.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/04_plan.png) |
| 课程绑定 | 弹窗/面板 | `TimetablePanel` | 正常 | 正常 | [05_course_binding.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/05_course_binding.png) |
| 参训名单 | 弹窗/抽屉 | `EnrollmentPanel` | 正常 | 正常 | [06_enrollment.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/06_enrollment.png) |
| 课程表与排课 | 课表视图 | `TimetablePanel` | 正常 | 正常 | [07_timetable.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/07_timetable.png) |
| 现场报到 | `/analysis/report` | `train/report` | 正常 | 正常 | [09_report.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/09_report.png) |
| 考勤管理 | `/analysis/checkin` | `train/checkin` | 正常 | 正常 | [10_attendance.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/10_attendance.png) |
| 住宿管理 | `/train/accommodation` | `train/accommodation` | 正常 | 正常 | [11_accommodation.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/11_accommodation.png) |
| 调房与住宿履历 | 弹窗 | `transfer / history` | 正常 | 正常 | [12_room_transfer.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/12_room_transfer.png) |
| DMS门禁资源映射 | 宿舍管理弹窗 | `train/dormitory` | 正常 | 正常 | [13_dms_mapping.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/13_dms_mapping.png) |
| 门禁授权管理 | `/train/auth` | `train/auth` | 正常 | 正常 | [14_door_authorization.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/14_door_authorization.png) |
| 外部操作流水 | 弹窗 | `operations history` | 正常 | 正常 | [15_operation_history.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/15_operation_history.png) |
**输出结论**: `ADMIN_NAVIGATION = PASS`
@@ -0,0 +1,10 @@
# 考勤浏览器验证结果 (ATTENDANCE_BROWSER)
## 验证项
1. **考勤明细列表**: 展示培训计划、课程、学员姓名、签到方式、考勤状态。
2. **状态支持**: 正常、迟到、早退、缺勤、请假。
3. **人工修正标识**: 字段 `manualFlag` 正确呈现。
4. **分页与筛选**: 按学员姓名、计划名称、考勤状态筛选均正确。
**证据截图**: [10_attendance.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/10_attendance.png)
**输出结论**: `ATTENDANCE_BROWSER = PASS`
@@ -0,0 +1,17 @@
# 浏览器错误门禁统计报告 (Browser Error Gate)
## 指标统计表
| 监控指标项 | 阈值要求 | 实际统计值 | 结论 |
| :--- | :--- | :--- | :--- |
| `HTTP_500_COUNT` | = 0 | **0** | **PASS** |
| `BLOCKING_CONSOLE_ERROR_COUNT` | = 0 | **0** | **PASS** |
| `CRITICAL_ASSET_404_COUNT` | = 0 | **0** | **PASS** |
| `UNHANDLED_PROMISE_REJECTION_COUNT` | = 0 | **0** | **PASS** |
## 详细异常记录
- HTTP 500 异常清单: `[]`
- 阻塞性控制台报错: `[]`
- 关键静态资源 404: `[]`
- 未捕获的 Promise Rejection: `[]`
**输出结论**: 浏览器错误门禁 100% 达标通过。
@@ -0,0 +1,18 @@
# 缺陷发现与就地修复清单 (Defects Found & Fixed)
在本轮验收准备与执行过程中,严格践行“Bug发现即修复”原则,修复并回归了以下缺陷:
| 序号 | 缺陷类别 | 缺陷现象与根因 | 修复方案 | 回归结果 |
| :--- | :--- | :--- | :--- | :--- |
| 1 | 前端依赖与构建 | RuoYi-Vue 升级时遗留 `splitpanes` 且未编译,导致前端开发服务器编译报错 | 在 `user/index.vue` 中重构为标准 Element-UI 栅格布局,移除该外部不兼容依赖 | 前端编译 0 报错通过 |
| 2 | ESLint 规则配置 | `build_ui/package.json` 缺少 Vue 模板 parser,导致 `npm run lint` 无法执行 | 配置 `plugin:vue/essential` 与 `babel-eslint`,对模板生成器历史代码增加豁免规则 | `npm run lint` 0 退出代码通过 |
| 3 | 生产构建规范 | 前端生产打包 `npm run build:prod` 需要正确产出 dist | 优化环境变量并运行 `npm run build:prod` 构建验证 | 构建完全成功 (DONE) |
| 4 | 登录验证码 UI | `login.vue` 中验证码输入组件被注释,导致前端无法输入后端要求的验证码 | 解开验证码组件注释,完善 `getCookie` 中对 `code` 属性的保留与校验规则 | 登录流程 100% 畅通 |
| 5 | 门禁路由缺失 | 前端路由缺少门禁授权页面导航,用户无法直接在菜单访问 Door Authorization | 在 `router/index.js` 中注册 `/train/auth` 路由 | 侧边栏和直接路由均正常 |
| 6 | 住宿前端组件 | 缺少住宿管理与调房的前端专用交互页面 | 新增 `api/train/accommodation.js` 与 `views/train/accommodation/index.vue`,支持入住、退宿、调房与履历 | 住宿业务完整闭环 |
| 7 | 一次性凭证展示 | 后端由于 `transient` 关键字未向前端序列化 `oneTimePlaintextCredential`,前端亦无展示弹窗 | 后端添加 `@JsonProperty`,前端添加掩码弹窗,且绝不落地存储 | ADMIN_ONE_TIME_DISPLAY 完全达标 |
**统计汇总**:
- `BUG_COUNT_FOUND`: 7
- `BUG_COUNT_FIXED`: 7
- `OPEN_BLOCKING_BUG_COUNT`: 0
@@ -0,0 +1,26 @@
# DMS 管理 UI 验证报告 (DMS_ADMIN_UI)
## 1. 资源映射管理
- **房间映射 (Room Mapping)**: 宿舍绑定外部 DMS 房间 `MOCK_ROOM_101`。
- **门锁映射 (Lock Mapping)**: 支持一房多锁,绑定主门锁 `MOCK_LOCK_101`。
- **主锁约束诊断 (Primary Lock Health)**:
- 1 个主门锁: `HEALTHY`
- 0 个主门锁: `MISSING_PRIMARY` (红色警告阻断)
- 多个主门锁: `MULTIPLE_PRIMARIES` (红色警告阻断)
## 2. 门禁授权与外部操作流水
- **门禁授权管理**: 集中展示学员宿舍门禁授权状态。
- **外部操作流水 (Operation History)**: 详细记录下发密码、注销密码流水,全要素严格脱敏,不泄漏密码、AppSecret或Token。
- **Mock 场景覆盖**:
- `GRANT_ACCEPTED` (HTTP 200 Accepted)
- `PENDING`
- `SUCCESS`
- `FAILED / TIMEOUT`
- **严谨区分**: HTTP 200 仅代表受理成功,需在 `operationStatus = SUCCESS` 时才展示生效中。
**证据截图**:
- DMS门禁映射: [13_dms_mapping.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/13_dms_mapping.png)
- 门禁授权管理: [14_door_authorization.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/14_door_authorization.png)
- 操作流水: [15_operation_history.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/15_operation_history.png)
**输出结论**: `DMS_ADMIN_UI = PASS`
@@ -0,0 +1,22 @@
# 运行时环境与安全隔离规范
## 1. 核心端点
- **LOCAL QA FRONTEND**: `http://127.0.0.1:1024` (业务前端 `build_ui`)
- **LOCAL QA BACKEND**: `http://127.0.0.1:8096`
- **LOCAL MOCK DMS**: `http://127.0.0.1:18099` (控制端口 `18098`)
- **QA KINGBASE**: `127.0.0.1:14321` (当前数据库 `railwaysystem_integrated_qa_20260916`)
## 2. 数据库身份核验
- `CURRENT_DATABASE`: `railwaysystem_integrated_qa_20260916`
- `CURRENT_USER`: `kingbase`
- `ROUND2_DATASET_REUSED`: `YES`
- TABLE_TRAIN_CLASS_PLAN: 13 (>=5)
- TABLE_TRAIN_TEACHER: 20 (>=20)
- TABLE_TRAIN_STUDENT: 200 (>=200)
- TABLE_TRAIN_COURSE: 24 (>=24)
- TABLE_TRAIN_LESSON: 118 (>=88)
## 3. 敏感信息卫生
- `QA_RUNTIME_SECRET_SOURCE`: `LOCAL_EXTERNAL_FILE` (`~/.railwaysystem-qa.env`,权限 `600`)
- `SECRET_VALUE_PRINTED`: `NO`
- 绝无明文密码、私钥、SM4加解密密钥暴露在命令行、日志、构建产物中。
@@ -0,0 +1,17 @@
# 网络环境探测与连接拓扑报告
## 1. 物理事实与模式
- **NETWORK_MODE**: `TAILSCALE_BASTION`
- **MAC 本机网络状态**: 脱离内网 `192.168.139.0/24`,无法直接通过 TCP 连接 `192.168.139.218:4321` 与 `192.168.139.218:9980`
- **BASTION_USED**: `YES`
- **BASTION_HOST**: `100.70.157.41` (对应内网部署服务器 `192.168.139.230`)
- **SSH 身份发现**: 复用用户现有可工作的 SSH Config Alias `wzbmatebook` (`HostName 100.70.157.41`, `User wzb`),绝无猜测,绝不输出私钥与凭据。
## 2. 数据库连接隧道
- **DB_NETWORK_MODE**: `TAILSCALE_SSH_TUNNEL`
- **DB_LOCAL_ENDPOINT**: `127.0.0.1:14321`
- **SSH 隧道转发映射**: `127.0.0.1:14321` -> `192.168.139.218:4321`
- **隧道进程 ID**: 独立专用 SSH 进程,生命周期受控,禁止使用 `pkill ssh` / `killall ssh`。
## 3. GitLab 访问模式
- **GitLab Access Mode**: `LOCAL_REFS_ONLY` (本轮无需 push,无需永久改动 remote url,不阻塞本轮验收)
@@ -0,0 +1,28 @@
# 一次性密码展示验证报告 (ADMIN_ONE_TIME_DISPLAY)
## 1. 业务策略与核心要求
- 管理员触发门禁权限对账或凭据初次创建;
- 第一次成功响应时,前端界面单次短暂展示一次性临时密码;
- 截图必须掩码 (Masked);
- 刷新页面后,凭据彻底消失;
- 离开页面重新进入,不得恢复;
- 详情、操作历史、浏览器存储 (LocalStorage / SessionStorage / IndexedDB)、数据库、后端日志绝无明文!
## 2. 执行与断言结果
1. **创建与首次展示**:
- 对账成功下发临时访问密码。
- 前端弹出 `一次性临时凭据展示 (ADMIN_ONE_TIME_DISPLAY)` 对话框。
- 默认采用掩码展示(`••••••••`),提供查看明文/掩码切换按钮。
- **截图已执行严格掩码**: [16_one_time_credential_MASKED.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/16_one_time_credential_MASKED.png)。
2. **刷新后消失断言**:
- 调用 `page.reload()` 重新加载页面。
- 断言:对话框彻底关闭,页面 DOM 中再无该临时密码。
- 离开页面至 `/person/teacher` 并重新返回 `/train/auth`:密码不得恢复。
3. **零明文留存审计**:
- `GET /train/access/auth/<built-in function id>`: 无明文密码字段。
- `GET /train/access/operations/<built-in function id>`: 无明文密码,已全量脱敏。
- `LocalStorage` / `SessionStorage`: 经自动化审计,明文凭证计数为 0。
- `Database`: 数据库表 `train_dorm_auth`、`train_external_operation` 绝无明文列。
- `Backend Log`: 敏感词正则全面脱敏,明文日志计数为 0。
**输出结论**: `ADMIN_ONE_TIME_DISPLAY_BROWSER_E2E = PASS`
@@ -0,0 +1,18 @@
# Round 3A 综合验收最终总结
- **验收轮次**: ROUND 3A
- **RUN_ID**: `INT_QA_R3A_20260916_190300`
- **代码分支**: `qa/integrated-acceptance-20260916`
- **数据库**: `railwaysystem_integrated_qa_20260916`
- **网络模式**: `TAILSCALE_BASTION` (SSH 隧道端口转发 `127.0.0.1:14321`)
- **核心判定**:
- `ADMIN_LOGIN`: **PASS**
- `ADMIN_NAVIGATION`: **PASS**
- `ADMIN_STANDARD_BROWSER_FLOW`: **PASS**
- `SCHEDULING_BROWSER`: **PASS**
- `ATTENDANCE_BROWSER`: **PASS**
- `ACCOMMODATION_BROWSER`: **PASS**
- `DMS_ADMIN_UI`: **PASS**
- `ADMIN_ONE_TIME_DISPLAY_BROWSER_E2E`: **PASS**
- `ROUND_3A_STATUS`: **PASS**
- **下一步规划**: `NEXT_ROUND = TEACHER_STUDENT_BROWSER_RBAC_ANALYTICS`
@@ -0,0 +1,15 @@
# 排课浏览器与冲突验证报告 (SCHEDULING_BROWSER)
## 验证项
1. **排课展示**: 完整呈现日历与课次明细视图。
2. **冲突检测交互**:
- 教师时间冲突检测:拦截并弹出 `排课冲突:教师时间冲突` 警告。
- 教室场地冲突检测:拦截并提示冲突课次。
- 班级/计划时间冲突检测:严格拦截。
3. **稳定性与容错**:
- 无白屏现象。
- HTTP 状态码绝非 500。
- 遵循警告阻断规则。
**证据截图**: [08_schedule_conflict.png](file:///Users/wzb/Desktop/项目/RailwaySystem-worktrees/integrated-acceptance-20260916/docs/reports/integrated-acceptance/INT_QA_R3A_20260916_190300/round-3a/screenshots/08_schedule_conflict.png)
**输出结论**: `SCHEDULING_BROWSER = PASS`
Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

@@ -0,0 +1,14 @@
# 运行时安全审计报告 (Security Runtime Audit)
## 1. 扫描指标
- `REAL_SECRET_COMMITTED_COUNT`: 0
- `PLAINTEXT_CREDENTIAL_DB_COUNT`: 0
- `PLAINTEXT_CREDENTIAL_LOG_COUNT`: 0
- `PLAINTEXT_CREDENTIAL_BROWSER_STORAGE_COUNT`: 0
- `PROCESS_ARG_SECRET_EXPOSURE_COUNT`: 0
## 2. 详细核查维度
- **进程启动参数**: 后端启动脚本统一从 `~/.railwaysystem-qa.env` 读取,并在命令行中隐去密码,绝不通过 `-D` 或 `--password` 明文暴露。
- **前端存储**: LocalStorage 仅保留用户首选项,SessionStorage/IndexedDB 零凭据。
- **数据库**: Kingbase 隔离 QA 库,无明文密码。
- **日志输出**: Logback 日志过滤器已生效,正则捕获并屏蔽敏感词。
@@ -0,0 +1,10 @@
# 标准业务浏览器流程验证报告 (ADMIN_STANDARD_BROWSER_FLOW)
## 业务链路流转
1. **培训计划查询与确认**: 成功检索到 Round 2 已建立的 13 个培训计划与 200 名学员。
2. **课程绑定与学员关联**: 计划关联 24 门综合课程,对应 88+ 课次安排。
3. **现场报到联动**: 62 名学员报到状态在 UI 正常呈现。
4. **住宿分配联动**: 54 条住宿记录与宿舍床位紧密绑定。
5. **考勤数据查询**: 课次考勤 77 条记录完整流转。
**输出结论**: `ADMIN_STANDARD_BROWSER_FLOW = PASS`