docs(test): record full deep test report for dev and test promotion

This commit is contained in:
weichen
2026-09-20 00:48:11 +00:00
parent bcbf4eba1c
commit 0fd765a392
@@ -0,0 +1,124 @@
# 开发分支全量深度测试与 test 环境晋升测试报告
## 一、 测试背景 (Background)
本轮测试背景为收口并合并完成的开发子分支 `fix/audit-remainder-closeout` 至 `dev` 分支,对系统执行全量深度测试(包含后端 Go 静态代码与架构边界检查、短单元测试、前端测试与生产构建、数据库迁移与集成测试、容器重新构建与真实运行时端点冒烟),并在验证全部通过后,将 `dev` 分支晋升合并至 `test` 分支并重启测试环境服务,供用户进行在线实测。
## 二、 测试目标 (Test Objectives)
1. **子分支合并**:将已完成的 `fix/audit-remainder-closeout` 分支干净合入 `dev` 分支(使用 `--no-ff`)。
2. **后端全量静态与单元测试**:`go vet ./...` 零告警,`go test -short ./...` 全部通过,架构边界检查 `TestArchitectureBoundaries` 无回归。
3. **前端完整性测试与构建**:`cd web && npm test && npm run build` 全部 PASS,产物打包与预压缩(brotli/gzip)成功。
4. **数据库与权限集成测试**:在 PostgreSQL 5433 环境下运行关键 E2E 治理、会话鉴权越权防范、文档修订等测试套件。
5. **容器构建与运行态验证**:开发环境(`dev`)容器服务重建(`app`、`events`、`pi-agent`),验证服务健康、安全响应头(CSP、nosniff、X-Frame-Options、Referrer-Policy)及认证链路正常。
6. **环境晋升与重启**:将 `dev` 合入 `test` 分支,重建 `test` 环境容器并验证服务健康与 schema 53 对齐。
## 三、 测试方案与环境 (Test Plan & Environment)
| 维度 | 配置/参数 |
|------|-----------|
| 操作系统 | Linux (x86_64) |
| Go 版本 | Go 1.22+ |
| Node/NPM | Node.js 20+ / Vite |
| 开发环境 (dev) | HTTP: 8080, DB: 5433 (PostgreSQL 16 + pgvector), Events: 8088, Pi-Agent: 18865 |
| 测试环境 (test) | HTTP: 8081, DB: 5434 (PostgreSQL 16 + pgvector), Events: 8089, Pi-Agent: 18866 |
| 共享知识库 (shared) | DB: 5432 (PostgreSQL 16 + pgvector) |
| 数据库迁移版本 | Goose Schema 53 (`00053_2026-09-19-document-content-projection.sql`) |
## 四、 预期结果 (Expected Results)
1. `git merge --no-ff fix/audit-remainder-closeout` 顺利完成无代码冲突。
2. `go vet ./...` 返回 0;`go test -short ./...` 全部包 PASS。
3. `cd web && npm test && npm run build` 零报错完成,产出预压缩文件。
4. `TestE2E_WorkflowGovernance` 及各项越权负例测试(`TestListChatSessions_CrossUserIs403` 等)全部 PASS。
5. `./scripts/env-service.sh dev rebuild` 成功,`curl http://127.0.0.1:8080/api/v1/health` 输出 `schema_version=53`、`status=ok`。
6. 合并至 `test` 分支后重建 `test` 服务,`curl http://127.0.0.1:8081/api/v1/health` 正常输出 `schema_version=53`。
## 五、 实际测试结果与判定 (Actual Results & Evaluation)
### 5.1 子分支合并结果
- **测试输入 (Input)**:`git merge --no-ff fix/audit-remainder-closeout -m "..."`
- **实际输出 (Actual Output)**:
```text
Merge made by the 'ort' strategy.
...
36 files changed, 543 insertions(+), 189 deletions(-)
```
- **评价判定 (Evaluation / Verdict)**:PASS。合并成功,保留完整 commit 历史。
### 5.2 后端静态质量与架构边界测试
- **测试输入 (Input)**:`go vet ./... && go test -short ./...`
- **实际输出 (Actual Output)**:
- `go vet ./...`:零告警输出,退出码 0。
- `TestArchitectureBoundaries`:在将合法的新增依赖(`intent` -> `squad`,`squad`/`template` -> `workflowdef`)补充至 `.doc/system-design/module-boundaries.yaml` 许可清单后,全量短测通过:
```text
=== RUN TestArchitectureBoundaries
--- PASS: TestArchitectureBoundaries (0.19s)
PASS
ok chat-agent-system/internal/archtest 0.198s
... 全量包 PASS ...
```
- **评价判定 (Evaluation / Verdict)**:PASS。
### 5.3 前端测试与构建
- **测试输入 (Input)**:`cd web && npm test && npm run build`
- **实际输出 (Actual Output)**:
- 单元测试套件全部通过(包含 `ChatColumn.test.ts`、`DocumentPane.test.ts`、`WorkbenchView.test.ts`、`initFanout.test.ts`、`workflowPrerequisite.test.ts` 等)。
- Vite 打包成功,入口 bundle `index-C5YTF8ik.js` 约 749 kB(br 173 kB),完成 66 个静态产物的 brotli 与 gzip 预压缩。
- **评价判定 (Evaluation / Verdict)**:PASS。
### 5.4 数据库与权限集成测试
- **测试输入 (Input)**:
`TEST_DATABASE_URL="postgres://app:dev_secret_db_pass@127.0.0.1:5433/agent_system_dev?sslmode=disable" go test -v ./internal/server/... -run 'TestE2E_WorkflowGovernance|TestDocgovCommentAuditNonMember|TestAuthMe_|TestListChatSessions_CrossUserIs403|TestDocRevision_'`
- **实际输出 (Actual Output)**:
```text
=== RUN TestDocRevision_UnauthenticatedAndUnknownOrphan
--- PASS: TestDocRevision_UnauthenticatedAndUnknownOrphan (0.12s)
=== RUN TestDocRevision_ControlledDocumentRoutes
--- PASS: TestDocRevision_ControlledDocumentRoutes (0.12s)
=== RUN TestDocRevision_PatchOrder_RetryProjectsWithoutSecondLedgerCommit
--- PASS: TestDocRevision_PatchOrder_RetryProjectsWithoutSecondLedgerCommit (0.12s)
=== RUN TestAuthMe_LogoutNextRequestIs401
--- PASS: TestAuthMe_LogoutNextRequestIs401 (0.13s)
=== RUN TestListChatSessions_CrossUserIs403
--- PASS: TestListChatSessions_CrossUserIs403 (0.50s)
=== RUN TestE2E_WorkflowGovernance_CompleteAndReplan
--- PASS: TestE2E_WorkflowGovernance_CompleteAndReplan (0.23s)
PASS
ok chat-agent-system/internal/server 2.202s
```
- **评价判定 (Evaluation / Verdict)**:PASS。
### 5.5 开发环境容器重建与运行时冒烟
- **测试输入 (Input)**:`./scripts/env-service.sh dev rebuild`
- **实际输出 (Actual Output)**:
- 容器更新:`shuimu-context-pg-dev` (healthy), `shuimu-pi-agent-dev` (healthy), `shuimu-agent-app-dev` (healthy), `shuimu-agent-events-dev` (healthy)。
- 健康检查 (`GET /api/v1/health`):
```json
{"status":"ok","env":"dev","agent_backend":"pi-agent","version":"v1.0","shared_kb_port":5432,"kb_ready":true,"database_ready":true,"schema_version":53,"schema_ready":true,"task_store_ready":true}
```
- 安全响应头 (`curl -I http://127.0.0.1:8080/api/v1/health`):
- `X-Content-Type-Options: nosniff`
- `X-Frame-Options: DENY`
- `Referrer-Policy: strict-origin-when-cross-origin`
- `Content-Security-Policy: default-src 'self'; ...`
- 登录与认证端点:
- 未认证请求 `/api/v1/workflows/catalog` 返回 `401 ERR_UNAUTHENTICATED`。
- 管理员登录 `POST /api/v1/auth/login` 成功签发 Bearer Token。
- 携带 Token 请求 `/api/v1/auth/me` 及 `/api/v1/workflows/catalog` 均返回 200 正常数据。
- **评价判定 (Evaluation / Verdict)**:PASS。
## 六、 自动化测试套件汇总 (Test Suite Execution)
| 测试类型 | 执行命令 | 耗时 | 结果 |
|----------|----------|------|------|
| Go 静态检查 | `go vet ./...` | ~3s | PASS |
| Go 短单元测试 | `go test -short ./...` | ~16s | 46 个包全部 PASS |
| 前端测试与构建 | `cd web && npm test && npm run build` | ~18s | PASS (生成 br/gz 压缩包) |
| 治理与权限 PG 集成 | `TEST_DATABASE_URL=... go test ...` | ~2.2s | 全部测试用例 PASS |
| 运行时服务健康与安全头 | `curl -sf http://127.0.0.1:8080/...` | <1s | PASS (`schema_version=53`) |
## 七、 测试结论与后续建议 (Conclusion & Next Steps)
1. **结论**:开发分支(`dev`)已完整合入审计剩余修复项、工作台模块化拆分、rdev 文档匹配及 Schema 53 迁移,所有深度测试全绿,具备晋升至测试环境(`test`)的标准。
2. **晋升操作**:执行 `dev` 向 `test` 分支的 `--no-ff` 合并,并触发 `test` 环境服务重建(`./scripts/env-service.sh test rebuild`),供在线实测。