Files
zclaw_openfang/docs/superpowers/specs/2026-04-05-pre-launch-functional-audit-design.md
iven ade534d1ce
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
feat: 添加MCP调试插件并优化流式超时处理
refactor(relay): 将Provider Key管理路由移至model_config模块
fix(saas): 修复demo_keys与provider_keys的匹配逻辑
perf(runtime): 将流式响应超时从60秒延长至180秒以适配思考型模型
docs: 新增模块化审计和上线前功能测试方案文档
chore: 添加tauri-plugin-mcp依赖及相关配置
2026-04-08 13:39:06 +08:00

16 KiB
Raw Blame History

ZCLAW 上线前功能审计方案

目标: 对 ZCLAW 全部功能模块进行系统性的端到端验证,确保每个功能按设计文档正常工作,发现并修复所有 P0/P1 缺陷。 方法: 基于 V12 模块化审计框架12 模块逐个测试 + 端到端用户场景集成验证。 状态: 设计完成,待执行。


1. 背景

1.1 当前状态

ZCLAW 已完成稳定化阶段2026-04-03V12 模块化审计给出了 76/100 的整体健康度。各模块健康度差异显著58-91/100低分模块存在未发现的功能缺陷风险。上线前需要一次系统性的全量功能验证。

1.2 已有基础设施

  • V12 审计: V12 审计覆盖了 11 个功能模块M1-M9, M11M10 编号跳过无对应报告),含健康度评分和已知问题清单。本测试方案重组为 12 个测试模块T1-T12其中 T11SaaS 后端 API无独立 V12 审计报告T12 为跨模块集成测试。
  • 自动化测试: Vitest (desktop + admin) + Playwright E2E (~278 tests) + cargo test (~595 tests, 含 386 同步 + 209 异步)
  • 测试工具: tauri-mcpTauri 端、PlaywrightWeb E2E、cargo testRust、HTTP 脚本SaaS API
  • 环境: Tauri 桌面端 + SaaS 后端 + Admin V2 + LLM API Key 全部可用

1.3 设计决策

决策 选择 理由
测试方案 模块化系统测试 + 端到端用户场景 与 V12 审计对齐,效率最高
Tauri 端测试工具 tauri-mcp 用户指定
SaaS API 测试工具 cargo test + HTTP 已有 86+ 单元测试基础
Admin V2 测试工具 Playwright + vitest 已有 ~71 单元测试 + Playwright 配置
测试范围 全量覆盖12 模块) 上线前无死角验证

2. 测试模块矩阵

2.1 模块清单(按风险排序)

序号 模块 V12 健康度 风险等级 主要测试工具 关键验证点
T1 Hands 自主能力 58/100 HIGH tauri-mcp + cargo test 9 Hands 触发/执行/审批闭环
T2 智能层(记忆/反思/心跳/自主) 61/100 HIGH tauri-mcp + cargo test 记忆提取/注入、反思触发、心跳周期
T3 Agent 分身 67/100 HIGH tauri-mcp Agent CRUD、身份切换、SOUL.md
T4 课堂系统 70/100 HIGH tauri-mcp 场景播放、TTS、白板、笔记含 3 个 P1 问题)
T5 Pipeline 工作流 72/100 MEDIUM tauri-mcp + cargo test DSL 解析、7 种 Action 执行、导出
T6 SaaS 桌面集成 85/100 MEDIUM tauri-mcp + HTTP 登录/订阅/Relay/配置同步
T7 技能生态 85/100 LOW tauri-mcp + cargo test 75 Skills 加载/路由/执行采样策略5 个/执行模式 + 全量解析验证;重点验证 M5-01 tags-triggers 映射问题)
T8 智能对话 91/100 LOW tauri-mcp 8 Provider 流式响应/Markdown/多模型切换
T9 Admin V2 后台 82/100 MEDIUM Playwright + vitest 15 页面 CRUD、认证、数据流10 页有测试5 页缺失Billing/ConfigSync/Knowledge/Roles/ScheduledTasks
T10 通信与安全 86/100 LOW cargo test + HTTP JWT/TOTP/Ed25519/CSP/限流
T11 SaaS 后端 API N/A MEDIUM cargo test + HTTP 131 API 端点、34 表、7 Worker
T12 端到端用户场景 N/A HIGH tauri-mcp 跨模块真实用户流程

2.1.1 T-M 映射表

本测试方案按风险重排了模块顺序。V12 审计编号 M10 跳过无对应报告T11 无 V12 审计基线。

测试模块 V12 审计模块 说明
T1 Hands 自主能力 M3 健康度最低 (58/100)
T2 智能层 M4 含 2 个 P0 问题
T3 Agent 分身 M2 14 个已知问题
T4 课堂系统 M11 3 个 P1 问题
T5 Pipeline 工作流 M6 2 个 P1 问题
T6 SaaS 桌面集成 M7 SaaS 前端集成
T7 技能生态 M5 重点验证 M5-01
T8 智能对话 M1 健康度最高 (91/100)
T9 Admin V2 后台 M8 15 页面5 页缺测试
T10 通信与安全 M9 安全基线验证
T11 SaaS 后端 API 无 V12 审计,使用功能文档 + 集成测试作为基线
T12 端到端用户场景 多模块 跨模块集成验证

2.2 测试工具分配

测试工具 用途
Tauri 桌面端 tauri-mcp UI 交互、组件状态、Tauri 命令调用、实时截图
Rust 后端 cargo test 单元测试、集成测试(~595 已有 + 补充)
SaaS API cargo test + HTTP API 端点验证、权限检查、并发测试
Admin V2 Playwright + vitest 页面交互、数据流(~71 已有测试5 页需新增)
E2E 集成 tauri-mcp 跨模块端到端用户场景(桌面端真实交互)

3. 测试用例设计

3.1 用例模板

TC-{模块编号}-{序号} | {用例名称}
前置条件: ...
测试步骤: ...
预期结果: ...
优先级: P0/P1/P2
场景类型: 正常(Normal) / 边界(Boundary) / 异常(Exception)
验证方法: tauri-mcp query_page + screenshot / cargo test / HTTP

3.2 三类场景定义

场景类型 定义 示例
正常 核心功能的 Happy Path 发送消息 -> 收到流式响应 -> 消息正确显示
边界 极限输入和状态转换 10000 字消息、同时触发 5 个 Hands、模型列表为空
异常 错误处理和降级 API Key 无效错误提示、网络断开离线模式、LLM 超时重试

3.3 每模块用例数量

风险分级规则HIGH = 健康度 < 75 或 P1 问题 >= 3MEDIUM = 健康度 75-89LOW = 健康度 >= 90 或安全模块。

风险等级 正常 边界 异常 合计 适用模块
HIGH 8-12 4-6 4-6 16-24 T1, T2, T3, T4
MEDIUM 6-8 3-4 3-4 12-16 T5, T6, T9, T11
LOW 4-6 2-3 2-3 8-12 T7, T8, T10
集成 8-10 2-3 2-3 12-16 T12

预估总用例数: ~170-230 个

3.4 缺陷分级标准

级别 定义 示例 修复时限
P0 阻塞 核心功能完全不可用 聊天无法发送、App 崩溃 立即修复
P1 严重 主要功能异常但有 workaround Hand 触发失败但手动可恢复 当天修复
P2 一般 次要功能异常或体验问题 设置页布局错位 本周修复
P3 轻微 视觉/文案/优化建议 按钮间距不一致 下个迭代
P4 建议 改进建议 交互体验优化 记录不修

4. 测试执行流程

4.1 四阶段执行计划

阶段 1: 环境准备 (预计 0.5-1 天)
  1.1 启动所有服务 (Tauri + SaaS + Admin + PostgreSQL)
  1.2 验证 tauri-mcp 连接
  1.3 确认至少 1 个 LLM Provider API Key 可用
  1.4 执行现有自动化测试基线
      - cargo test --workspace
      - cd desktop && pnpm vitest run
      - cd admin-v2 && pnpm vitest run
  1.5 记录基线结果

阶段 2: 高风险模块 (T1-T4) (预计 3-5 天)
  T1 Hands 自主能力 (58/100) -- 最优先
  T2 智能层 (61/100)
  T3 Agent 分身 (67/100)
  T4 课堂系统 (70/100)
  目标: P0/P1 缺陷清零
  注: 测试与修复并行,每发现 P0/P1 立即修复并回归验证

阶段 3: 中低风险模块 (T5-T11) (预计 3-5 天)
  T5 Pipeline -> T6 SaaS 集成 -> T7 技能 -> T8 对话
  T9 Admin V2 -> T10 安全 -> T11 SaaS API
  每模块完成后立即修复发现的问题
  注: T11 无 V12 审计报告,以功能文档 (docs/features/08-saas-platform/)
      和现有集成测试 (crates/zclaw-saas/tests/) 为基线

阶段 4: 端到端集成验证 (T12) (预计 2-3 天)
  8-10 个跨模块用户场景
  回归验证阶段 2-3 修复的问题
  生成最终测试报告

总计预估: 8-14 天

4.2 每模块执行流程

Step 1: 读取该模块的 V12 审计报告 (docs/features/audit-v12/M{n}-{name}.md)
        确认已知问题清单
        注: T11 (SaaS 后端 API) 无 V12 审计报告,跳过此步,
            以 docs/features/08-saas-platform/ 和 crates/zclaw-saas/tests/ 为基线

Step 2: 读取功能设计文档 (docs/features/{module-dir}/{doc}.md)
        理解预期行为和设计规范
        具体路径参见 Section 8 文件索引

Step 3: 执行该模块的现有自动化测试
        cargo test / vitest run -- 相关文件
        记录基线通过率

Step 4: 用 tauri-mcp 执行手动测试用例
        - query_page(mode='map') 获取页面结构
        - 执行用户交互 (click, type_text, navigate)
        - take_screenshot 截图记录
        - 验证 Store 状态 (execute_js 检查 Zustand)

Step 5: 发现问题 -> 立即修复 -> 回归验证
        修复后重新执行相关用例

Step 6: 模块完成 -> 生成测试报告
        更新 docs/features/audit-v12/ 中的模块报告

4.3 tauri-mcp 测试工作流

Tauri 端测试的标准化流程:

1. 窗口管理
   manage_window(action='list') -> 获取窗口列表
   manage_window(action='focus') -> 聚焦目标窗口

2. 页面状态检查
   query_page(mode='state') -> URL/title/scroll 状态
   query_page(mode='map') -> DOM 元素结构
   query_page(mode='find_element') -> 精确定位交互目标

3. 用户交互
   click(selector_type='ref', selector_value='{ref}') -> 点击
   type_text(text='{text}') -> 输入
   mouse_action(action='scroll', direction='down') -> 滚动
   navigate(action='goto', url='{url}') -> 导航

4. 状态验证
   take_screenshot() -> 截图记录
   wait_for(text=['{expected}']) -> 等待预期结果
   Store 状态验证优先级:
     a) DOM 元素内容检查 (query_page mode='map' 验证渲染结果)
     b) execute_js 检查 React 组件渲染状态 (document.querySelector)
     c) 如需直接访问 Store通过 query_page(mode='map') 的 interactive_only=true
        检查受控组件值间接推断 Store 状态

5. 结果记录
   截图保存到 docs/test-results/{module}/
   测试结果记录到测试报告

5. 端到端用户场景 (T12)

5.1 核心用户场景

# 场景名称 涉及模块 关键步骤
E2E-01 新用户首次对话 T8, T3, T7 打开应用 -> 首次引导 -> 选择模型 -> 发送消息 -> 收到回复
E2E-02 Agent 创建与使用 T3, T8, T2 创建新 Agent -> 配置个性/技能 -> 切换到新 Agent -> 发送消息验证身份
E2E-03 Hand 触发与审批 T1, T2, T8 对话中触发 Hand -> 查看执行状态 -> 审批确认 -> 查看结果
E2E-04 SaaS 登录与订阅 T6, T10 登录 SaaS -> 查看订阅状态 -> 配置同步 -> 验证本地状态
E2E-05 Pipeline 创建与执行 T5, T1 创建 Pipeline -> 配置 Action -> 执行 -> 查看结果 -> 导出
E2E-06 记忆与反思闭环 T2, T3, T8 多轮对话 -> 触发记忆提取 -> 验证记忆存储 -> 反思触发 -> 身份演化
E2E-07 Admin 管理全流程 T9, T11 登录 Admin -> 管理账户 -> 配置模型 -> 查看日志 -> 管理 Prompt
E2E-08 离线与重连 T1, T2, T6, T8 断开网络tauri-mcp: 关闭 SaaS 后端模拟服务端不可达)-> 离线模式验证聊天降级、Hand 事件队列、心跳检测)-> 恢复网络 -> 自动重连 -> 消息同步
E2E-09 课堂场景播放 T4, T1 进入课堂 -> 播放场景 -> TTS 朗读 -> 白板互动 -> 笔记记录
E2E-10 技能发现与执行 T7, T8 浏览技能市场 -> 安装技能 -> 对话中触发技能 -> 验证执行结果

6. 上线达标标准

6.1 强制达标项(全部必须通过)

# 达标项 标准
1 P0 缺陷 0 个
2 P1 缺陷 <= 2 个(且有明确修复计划)
3 核心流程 聊天、Agent CRUD、Hand 触发、SaaS 登录 4 条主路径 100% 通过
4 自动化测试 cargo test --workspace + cd desktop && pnpm vitest run + cd admin-v2 && pnpm vitest run + cargo check --workspace 全部通过
5 安全 无 HIGH 级别安全缺陷(复用渗透测试 V1 标准)

6.2 建议达标项

# 达标项 目标
1 整体通过率 >= 95%
2 模块最低健康度 >= 65/100所有模块争取 >= 70/100。健康度重评采用与 V12 相同的 5 维度框架(功能完整性、代码质量、测试覆盖、文档完备、集成连通性),由测试执行者在每模块完成后打分
3 平均健康度 >= 85/100
4 E2E 用户场景通过率 >= 90%

7. 测试报告格式

7.1 模块测试报告模板

## T{n} {模块名} 测试报告

### 摘要
- 执行用例数: X/Y
- 通过率: Z%
- 发现缺陷: P0: a, P1: b, P2: c, P3: d

### V12 已知问题验证
| V12 Issue ID | 描述 | V12 严重度 | 验证结果 | 备注 |
|-------------|------|-----------|---------|------|

### 新发现问题
| TC-ID | 描述 | 场景类型 | 优先级 | 状态 | 截图 |
|-------|------|---------|--------|------|------|

### 健康度评估
- V12 基线: XX/100
- 本次评估: YY/100
- 变化: +/-ZZ
- 关键改善: ...
- 残留风险: ...

7.2 最终交付物

# 交付物 路径
1 测试计划文档 docs/test-results/TEST_PLAN.md
2 模块测试报告 docs/test-results/T{n}-{module}/REPORT.md
3 缺陷清单 docs/test-results/DEFECT_LIST.md
4 截图证据 docs/test-results/T{n}-{module}/screenshots/
5 上线评估 docs/test-results/RELEASE_READINESS.md
6 自动化脚本 新增的测试脚本(如有)

8. 关键文件索引

8.1 功能设计文档

模块 文档路径
通信层 docs/features/00-architecture/01-communication-layer.md
状态管理 docs/features/00-architecture/02-state-management.md
安全认证 docs/features/00-architecture/03-security-auth.md
聊天界面 docs/features/01-core-features/00-chat-interface.md
Agent 分身 docs/features/01-core-features/01-agent-clones.md
Hands 系统 docs/features/01-core-features/02-hands-system.md + docs/features/05-hands-system/
智能层 docs/features/02-intelligence-layer/ (8 files)
技能生态 docs/features/04-skills-ecosystem/
Pipeline docs/features/07-pipeline-dsl/
SaaS 平台 docs/features/08-saas-platform/
Tauri 后端 docs/features/06-tauri-backend/

8.2 V12 审计报告

模块 报告路径
M1 智能对话 docs/features/audit-v12/M1-intelligent-chat.md
M2 Agent 分身 docs/features/audit-v12/M2-agent-clones.md
M3 Hands docs/features/audit-v12/M3-hands-system.md
M4 智能层 docs/features/audit-v12/M4-intelligence-layer.md
M5 技能生态 docs/features/audit-v12/M5-skill-ecosystem.md
M6 Pipeline docs/features/audit-v12/M6-pipeline-workflow.md
M7 SaaS 桌面 docs/features/audit-v12/M7-saas-desktop.md
M8 Admin V2 docs/features/audit-v12/M8-admin-v2.md
M9 安全 docs/features/audit-v12/M9-communication-security.md
M11 课堂 docs/features/audit-v12/M11-classroom.md

8.3 测试基础设施

类型 路径
Desktop Vitest 配置 desktop/vitest.config.ts
Desktop 测试文件 desktop/tests/
E2E Playwright 配置 desktop/tests/e2e/playwright.config.ts
E2E 测试文件 desktop/tests/e2e/specs/
E2E 测试工具 desktop/tests/e2e/fixtures/ + utils/
Admin Vitest 配置 admin-v2/vitest.config.ts
Admin 测试文件 admin-v2/tests/
Root 测试文件 tests/
Root Mock Server tests/fixtures/zclaw-mock-server.ts
SaaS 集成测试 crates/zclaw-saas/tests/