deerflow2/.planning/phases/05-test-hardening-and-commi.../05-PLAN.md

7.1 KiB
Raw Blame History

phase plan type wave depends_on files_modified autonomous requirements must_haves
05-test-hardening-and-commit-hygiene 01 execute 1
04-iframe-markdown-new-system-stabilization
frontend/tests/e2e/welcome-and-routing.spec.ts
frontend/tests/e2e/thread-routing.spec.ts
frontend/tests/e2e/input-and-compose.spec.ts
frontend/tests/e2e/message-and-history.spec.ts
frontend/tests/e2e/artifacts-and-thread-reuse.spec.ts
frontend/tests/e2e/support/chat-helpers.ts
frontend/playwright.config.ts
.planning/phases/05-test-hardening-and-commit-hygiene/05-UAT.md
.planning/phases/05-test-hardening-and-commit-hygiene/05-SUMMARY.md
true
TEST-01
TEST-02
TEST-03
truths artifacts key_links
E2E 关键路径在当前环境具备稳定执行结果:前端可控路径必须强断言通过,环境敏感路径必须可解释 skip。
测试输出必须形成 reviewer 可用证据pass/skip/fail 统计 + skip 原因 + 失败定位入口。
提交结构按 concern 清晰拆分,避免 style/logic/tests/docs 混杂。
path provides
frontend/tests/e2e/support/chat-helpers.ts 统一的路由构造、等待策略、skip 规则
path provides
frontend/tests/e2e/*.spec.ts Phase 1~4 关键路径回归覆盖
path provides
.planning/phases/05-test-hardening-and-commit-hygiene/05-UAT.md Phase 5 测试结论与问题清单
from to via pattern
chat-helpers.ts all e2e specs 统一等待与 skip 策略 openChat|waitForMessageListReady|skipIfMissingThread
from to via pattern
playwright.config.ts e2e execution 环境变量与执行稳定性 baseURL|retries|reporter
完成最终测试加固与提交卫生收口:形成稳定可解释的 E2E 结果,并将当前工作区变更整理为可审阅、可回滚的提交结构。

Purpose: 落实 TEST-01/TEST-02/TEST-03保证 merge recovery 结束前质量可审计。
Output: Phase 5 UAT + Summary + concern-based commit checklist。

@.planning/PROJECT.md @.planning/REQUIREMENTS.md @.planning/ROADMAP.md @.planning/phases/05-test-hardening-and-commit-hygiene/05-CONTEXT.md @.planning/phases/04-iframe-markdown-new-system-stabilization/04-UAT.md @frontend/playwright.config.ts @frontend/tests/e2e/support/chat-helpers.ts @frontend/tests/e2e/welcome-and-routing.spec.ts @frontend/tests/e2e/thread-routing.spec.ts @frontend/tests/e2e/input-and-compose.spec.ts @frontend/tests/e2e/message-and-history.spec.ts @frontend/tests/e2e/artifacts-and-thread-reuse.spec.ts Task 1: E2E 套件稳定性硬化TEST-01 frontend/tests/e2e/welcome-and-routing.spec.ts frontend/tests/e2e/thread-routing.spec.ts frontend/tests/e2e/input-and-compose.spec.ts frontend/tests/e2e/message-and-history.spec.ts frontend/tests/e2e/artifacts-and-thread-reuse.spec.ts frontend/tests/e2e/support/chat-helpers.ts - Test 1: 前端可控关键路径(路由、输入、发送、导出触发)维持强断言。 - Test 2: 后端/fixture 敏感路径在数据缺失时 skip 且附明确原因。 - Test 3: 不再出现因单点后端错误引发的无意义级联失败。 统一 spec 断言策略与 helper 行为:将环境敏感断言抽象到 helper并规范 skip 文案;对关键用户路径保留严格断言,避免“全部放宽”导致测试失真。 cd frontend && npm run test:e2e -- welcome-and-routing.spec.ts thread-routing.spec.ts input-and-compose.spec.ts message-and-history.spec.ts artifacts-and-thread-reuse.spec.ts E2E 套件在当前环境具备稳定、可解释结果,关键路径无假阴性。 Task 2: 验证证据与 UAT 收敛TEST-01, TEST-03 .planning/phases/05-test-hardening-and-commit-hygiene/05-UAT.md .planning/phases/05-test-hardening-and-commit-hygiene/05-SUMMARY.md - Test 1: UAT 包含 pass/issue/skip 统计与逐项说明。 - Test 2: skip 场景必须有明确环境原因,不允许模糊表述。 - Test 3: Summary 能反向追溯到验证命令与关键文件。 基于实际执行命令产出 Phase 5 的 UAT 与 SUMMARY保证 reviewer 能复现与审计;明确哪些结果是环境限制,哪些是代码风险。 test -f .planning/phases/05-test-hardening-and-commit-hygiene/05-UAT.md && test -f .planning/phases/05-test-hardening-and-commit-hygiene/05-SUMMARY.md 验证证据链完整,后续 `gsd-complete-milestone` 可直接消费。 Task 3: 提交卫生整理TEST-02 (working tree concern groups) - 提交按 concern 分组style / logic / tests / docs。 - 每组提交都能对应最小验证命令。 - 不改写历史提交,不回滚无关用户变更。 梳理当前工作区变更,形成 commit 建议清单与执行顺序;若本阶段执行提交,则严格按 concern 分批提交并附验证结果。 git status --short 提交结构清晰PR 审阅成本可控。

<threat_model>

Trust Boundaries

Boundary Description
test assertions -> unstable backend fixtures 测试断言受后端数据波动影响,需要前端可控与环境依赖分层
working tree -> commit history 大量未提交改动进入历史前,必须按 concern 清洗并可追溯

STRIDE Threat Register

Threat ID Category Component Disposition Mitigation Plan
T-05-01 R (Repudiation) E2E result interpretation mitigate 统一 pass/skip/fail 规则与 skip 原因模板
T-05-02 D (Denial of Service) flaky tests blocking pipeline mitigate helper 统一等待与条件 skip减少假失败级联
T-05-03 T (Tampering) mixed-concern commits mitigate 按 concern 分组提交并绑定最小验证命令
T-05-04 I (Information Disclosure) log-driven decisions accept 本阶段不新增数据读取面,仅利用现有日志作定位
</threat_model>
1. 目标 E2E 套件执行完成并产出可解释结果。 2. Phase 5 UAT/SUMMARY 文档齐备且与执行结果一致。 3. 提交整理策略明确,可直接进入提交或里程碑收尾。

<success_criteria>

  • TEST-01回归测试覆盖关键路径并稳定运行。
  • TEST-02变更可按 concern 清晰提交,避免混乱历史。
  • TEST-03验证结果对 reviewer 可审计、可复现、可解释。
    </success_criteria>
After completion, create `.planning/phases/05-test-hardening-and-commit-hygiene/05-SUMMARY.md`