Files
PlantAI-rag-new/docs/TEST_REPORT_R2.md
T
jerryandClaude Fable 5 1e94de7464 PlantAI-rag-new 首次提交:文献知识工作台
- BFF 薄适配层(FastAPI,8090):QA 代理/SSE 中继/Neo4j 直连/抽取代理/会话持久化
- Vue3 前端:五相位检索流水线、文献来源与证据链、知识图谱、提取任务四 tab
- 四档响应式(桌面/笔记本/平板/手机)、深浅主题
- 81 个 FR 全部实现,测试追溯矩阵 81/81,后端 121 测/前端 156 测
- 真实凭据已脱敏,运行时配置在 backend/.env(不入 git)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 20:47:52 +08:00

100 lines
7.3 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.
# TEST_REPORT_R2.md —— 第二轮全量回归测试报告
> 轮次 R2 | 日期 2026-08-25 | 测试 agent T | 模板依据 TEST_PLAN §8
---
## 1. 轮次信息
| 项 | 值 |
|---|---|
| 被测版本 | M4 第二轮:R1 的 8 个缺陷修复后(修复清单见协调通知) |
| 运行环境 | 远端 plantai-bff 机;BFF 8090(真实上游 7920/8000/7900/Neo4j 全通,health 无索引误报);Vite 5180→8090(HMR 已同步修复);mock 8099(本地/远端 md5 一致) |
| L1/L2 | `backend` pytest 全量 + `--cov=app` |
| L3/L4 | `frontend` vitest 全量 + `--coverage` |
| L5 | Playwright 1.49.1 + chromium-1148,三档视口 48 条 |
| L2s | `bash tests/smoke_upstreams.sh` |
| 铁律 | 只跑测试与写报告;未修改任何产品代码(`frontend/src/**`、`backend/app/**` 零改动) |
## 2. 首页统计
### 2.1 分层结果
| 层 | 总数 | Pass | Fail | Skip | 说明 |
|---|---|---|---|---|---|
| L1+L2 后端 | 121 | 121 | 0 | 0 | 修复后新增 2 条(R1 为 119) |
| L3+L4 前端 | 156 | 156 | 0 | 0 | 修复后新增 19 条(R1 为 137) |
| L5 端到端(全量 final3) | 48 | 35 | **1(flake)** | 12 | 唯一失败为 tablet E2E-01 上游排队超时,**单独复跑 52.3s 通过**(见 §5.1) |
| L5 补跑(受修复影响用例) | 10 | 10 | 0 | 0 | mobile/tablet E2E-01/02 复跑、bench 三档复跑——全部通过 |
| L2s 上游 smoke | 7 | 7 | 0 | 0 | 含 Neo4j 认证查询 |
### 2.2 覆盖率(辅门禁)
| 项 | 实际 | 门禁 | 结论 |
|---|---|---|---|
| 后端行覆盖 | **87%**(2786 行中 350 未覆盖) | ≥85% | 达标 |
| 前端行覆盖 | **80.59%**(All files) | ≥80% | 达标 |
| FR 需求追溯(主门禁) | **81/81,未覆盖清单为空**(TEST_CASES.md 矩阵不变) | 100% | 达标 |
### 2.3 L5 明细(final3 全量 + 补跑)
| TC 映射 | 用例 | mobile | tablet | desktop | 结论 |
|---|---|---|---|---|---|
| TC-E2E-SMOKE-01/02 | 冒烟 | ✓ | ✓ | ✓ | PASS |
| TC-E2E-01 | 主流程(含 R1 阻断的刷新恢复补验 + markdown 断言) | ✓ | ✓(补跑) | ✓ | **BUG-R1-06/07 修复确认;刷新恢复步骤已跑通** |
| TC-E2E-02 | 检索模式 | ✓ | ✓ | ✓ | **BUG-R1-07 修复确认**(46-49s 正常完成,不再 30s 自断) |
| TC-E2E-03 DOWN | QA 不可用降级 | — | — | ✓ | **BUG-R1-04 修复确认**(作曲器禁用) |
| TC-E2E-03 ERROR | 上游错误+重试 | — | — | ✓ | **BUG-R1-05 修复确认**(透传上游 message + 重试同位置替换) |
| TC-E2E-04 核心 | 新建/重命名/搜索/分组 | ✓ | ✓ | ✓ | PASS |
| TC-E2E-04 活动态 | 活动高亮探针 | ✓ | ✓ | ✓ | **BUG-R1-02 修复确认** |
| TC-E2E-04 删除 | 删除入口探针 | ✓ | ✓ | ✓ | **BUG-R1-03 修复确认**(右键唤出确认弹层) |
| TC-E2E-05 | 中断 | — | — | ✓ | PASS |
| TC-E2E-06 | 主题切换持久化 | ✓ | ✓ | ✓ | PASS |
| TC-E2E-07 | 图谱搜索/邻域/详情 | ✓ | ✓ | ✓ | **BUG-R1-01 修复确认**(结果含 OsSPL14;51 节点降级列表路径两形态均接受) |
| TC-E2E-08 | 抽取任务/日志/上传 | ✓ | ✓ | ✓ | PASS |
| TC-E2E-09 桌面 | 网格/底栏/折叠 | — | — | ✓ | PASS |
| TC-E2E-09 平板 | 抽屉/scrim | — | ✓ | — | PASS |
| TC-E2E-09 手机 | 移动端专项 | ✓ | — | — | PASS |
**结论:全部 TC-E2E 用例在 R2 至少一次干净运行中通过;final3 唯一失败为环境性 flake(§5.1),复跑通过,非产品缺陷。**
## 3. 缺陷清单
**本轮无新缺陷。** R1 的 8 个缺陷全部确认修复(见 §4),未引入回归。
## 4. 上轮(R1)缺陷修复确认表
| 编号 | 是否修复 | 本轮对应 TC 结果 |
|---|---|---|
| BUG-R1-01 kg 搜索 q 参数 | **已修复** | TC-E2E-07 三档 ✓(搜索返回 OsSPL14 正确结果;http.js URLSearchParams 序列化已核实) |
| BUG-R1-02 会话活动高亮 | **已修复** | TC-E2E-04 活动态探针 三档 ✓(selectSession 同步 sessions.activeId) |
| BUG-R1-03 删除入口死代码 | **已修复** | TC-E2E-04 删除探针 三档 ✓(右键唤出 confirm-box,Teleport z-70) |
| BUG-R1-04 QA 降级作曲器未禁用 | **已修复** | TC-E2E-03 DOWN ✓(ChatPanel composerDisabled 接线 health.qaOk) |
| BUG-R1-05 502 误显示「连接中断」 | **已修复** | TC-E2E-03 ERROR ✓(err.code 优先映射,透传「上游问答服务返回错误」+ 重试) |
| BUG-R1-06 markdown 未渲染 | **已修复** | TC-E2E-01 三档 ✓(qaToBlocks/_finalizeReveal 走 renderMarkdown,HTML 含 <li>/<strong>) |
| BUG-R1-07 30s 超时自断 | **已修复** | TC-E2E-02 三档 ✓(默认超时 600s;46-49s 真实检索正常完成) |
| BUG-R1-08 health 索引误报 | **已修复** | `/api/health` 实测 `neo4j.detail` 字段已消除(成员判断修复) |
## 5. 遗留问题与风险
1. **tablet E2E-01 全量中的 flake(唯一失败)**:final3 中 tablet 档主流程 300s 超时(trace 显示流未在时限内终态,afterEach 清理正常执行),单独复跑 52.3s 通过;mobile/desktop 同轮 53.2s/53.6s 通过。判定为**上游 QA 排队/偶发慢**(同一 spec 三档三次全量中 2/3 通过),非产品缺陷。建议下轮把真实流 E2E 的 test timeout 提到 480s、终态等待上限 360s,消除环境抖动误报。
2. **12 条 skip 维持**(设计门控):mock 场景仅桌面代表、E2E-05 仅桌面(真实流成本高,跨档行为一致)。如需三档全跑需 PM 确认。
3. **Laptop 档(1024–1279)仍无 Playwright project**(R1 遗留问题 4):TC-RESP-002(左栏自动折叠 64px/右栏 340px)本轮仍未 L5 覆盖,需 PM 决定是否加档。
4. **`tests/backend/` L2 respx 独立测试仍空**(R1 遗留问题 2):L2 用例(检查点节奏、级联删除、INVALID_CITATION 重试等)靠 A 组单测 + L5 间接覆盖。
5. **QA LLM 402 仍存在**:chat 答案为 fallback 证据列表;「依赖充值」断言维持结构回退。若这是最后一轮,充值后的答案质量断言移交 L6 验收。
6. **共享数据**:R2 测试会话已全部清理(按 ID 快照 + 时间窗删除 58 条),远端 SQLite 现仅剩 PM 集成期 7 条会话。
7. **T 自身测试缺陷修复(R2 内)**:E2E-07 接受降级列表形态、E2E-01 等 md-text 终态(弃等 stream-wrap 消失的脆断言)、markdown 触发条件收紧、E2E-05 改位置定位、清理改 ID 快照——均已同步远端。
## 6. 证据归档
- 远端日志:`/tmp/r2_pytest.log`、`/tmp/r2_cov.log`(121 passed,87%)、`/tmp/r2_vitest_cov.log`(156 passed,80.59%)、`/tmp/r2_smoke.log`(7/7)、`/tmp/r2_pw_final3.log`(L5 全量)、`/tmp/r2_pw_m1.log`(mobile 补跑)、`/tmp/r2_pw_t1.log`(tablet 补跑)
- 失败截图/trace:`frontend/test-results/`(final3 tablet E2E-01 一份,为 flake 证据)
- 归档:`/home/xzq/5090/teamWorkspace/zh/r1_test_evidence/`(R1 证据保留;R2 日志在 /tmp 保留至 PM 决定归档)
## 7. 轮次结论
- 主门禁(FR 追溯 81/81)**达标**;辅门禁(后端 87%、前端 80.59%)**达标**。
- R1 的 8 个缺陷**全部确认修复**;R2 **无新缺陷**。
- L5 全量唯一失败经复跑确认为环境性 flake,全部 TC-E2E 在干净运行中通过。
- **由 PM 判定是否收尾**:若收尾,建议采纳 §5.1 的超时加固建议(T 测试代码变更,无需产品修复)。