xworkmate-app/docs/testing/test-case-coverage-matrix.md
2026-04-22 09:35:05 +08:00

9.8 KiB
Raw Blame History

XWorkmate 测试 Case 覆盖矩阵

1. 目的

这份文档把当前仓库里已经定义的测试 case 按“主题场景”重新整理为一张更适合日常维护的总表,方便回答以下问题:

  • 目前都设计了哪些典型场景
  • 哪些场景已经有自动化基础
  • 哪些场景目前仍主要依赖手动验证
  • 每类 case 的主要落点在什么测试层
  • 当前最明显的缺口在哪里

本文是索引与盘点,不替代原始 case 文档。

配套原始文档:

2. 状态口径

状态 含义
已设计 已在手动 case 或自动化规划中被明确命名和描述
已自动化 已有明确测试文件或 harness 落点,且仓库中存在对应测试基础
仅手动/待补自动化 手动 case 已定义,但自动化仍未完整落地
部分自动化 有底层 suite / fixture / harness但场景还没有完整闭环

3. 典型场景总表

场景组 典型场景 当前状态 主要测试层 主要落点 备注 / 当前缺口
设置配置 在线账户同步后,远端默认值注入且本地 override 保留 已设计 + 已自动化 runtime / feature test/runtime/settings_controller_account_sync_suite.dart test/features/settings_page_suite.dart 重点检查 secret 不进入普通 snapshot
设置配置 selfhost ACP 基址派生 /acp/acp/rpc 已设计 + 已自动化 runtime / feature test/runtime/acp_endpoint_paths_suite.dart test/runtime/external_acp_endpoint_settings_suite.dart 需要持续防止路径重复拼接
设置配置 local / loopback 允许非 TLSremote 不允许静默降级 已设计 + 已自动化 runtime / feature test/runtime/gateway_endpoint_normalization_suite.dart test/runtime/external_acp_endpoint_settings_suite.dart 属于安全边界关键 case
设置配置 设置页“测试连接”对 hosted / selfhost / local / auth / 失败提示分类正确 已设计 + 部分自动化 feature / integration test/features/settings_page_gateway_acp_messages_suite.dart integration_test/desktop_settings_flow_test.dart 冒烟链路存在,但错误分类覆盖仍应持续补齐
安全存储 secret 只进 secure storage不进普通 settings snapshot 已设计 + 已自动化 runtime / feature test/runtime/secure_config_store_suite_*.dart test/runtime/acp_bridge_server_self_hosted_secret_suite.dart 安全敏感,后续改动都应复用这组断言
本地线程执行 pptx 文档生成并回写当前线程 artifact 已设计 + 已自动化 feature / runtime test/features/assistant_page_installed_skill_e2e_suite.dart test/runtime/app_controller_thread_skills_suite.dart 已由 installed-skill harness 验证
本地线程执行 docx 文档生成并回写当前线程 artifact 已设计 + 已自动化 feature / runtime test/features/assistant_page_installed_skill_e2e_suite.dart test/runtime/app_controller_thread_skills_suite.dart 已由 installed-skill harness 验证
本地线程执行 xlsx 表格生成并回写当前线程 artifact 已设计 + 已自动化 feature / runtime test/features/assistant_page_installed_skill_e2e_suite.dart test/runtime/desktop_thread_artifact_service_test.dart 已由 installed-skill harness 验证
本地线程执行 pdf 生成/合并结果文件并回写当前线程 artifact 已设计 + 已自动化 feature / runtime test/features/assistant_page_installed_skill_e2e_suite.dart test/runtime/app_controller_thread_skills_suite_workspace_fallback.dart 已由 installed-skill harness 验证
本地线程执行 image-resizer 图片处理结果回写当前线程 已设计 + 仅手动/待补自动化 feature / runtime 规划落点:test/features/assistant_page_installed_skill_e2e_suite.dart 目前在规划文档中明确,但报告里仍属 deferred media
本地线程执行 本地浏览器自动化结果回到当前线程,且切线程不串上下文 已设计 + 部分自动化 runtime / feature test/runtime/app_controller_thread_skills_suite_thread_isolation.dart 有线程隔离基础,浏览器技能闭环仍待补
在线线程执行 image-cog 在线图像生成任务提交、轮询、产物回传 已设计 + 部分自动化 runtime / feature test/runtime/app_controller_thread_skills_suite_acp.dart 已有 ACP thread suite 基础,完整 media 闭环待补
在线线程执行 image-video-generation-editting 长任务轮询并回传图片/视频 已设计 + 仅手动/待补自动化 runtime / feature 规划落点:test/runtime/app_controller_thread_skills_suite_acp.dart 当前仍以规划和手动 case 为主
在线线程执行 video-translator 在线翻译/配音并回传结果 已设计 + 仅手动/待补自动化 runtime / feature 规划落点:test/runtime/app_controller_thread_skills_suite_acp.dart 当前仍以规划和手动 case 为主
在线线程执行 资讯采集返回结构化资讯结果,保留线程归属 已设计 + 仅手动/待补自动化 runtime / feature 规划落点:test/runtime/app_controller_thread_skills_suite_thread_isolation.dart 当前主要靠手动 case 覆盖
在线线程执行 搜索返回结构化结果,并支持同线程继续追问摘要 已设计 + 部分自动化 runtime / feature test/runtime/app_controller_execution_target_switch_suite_thread.dart test/runtime/app_controller_thread_skills_suite_thread_isolation.dart 线程连续性基础已在,搜索业务闭环仍应补强
线程连续性 同线程连续追问不丢上下文 已设计 + 已自动化 runtime / feature test/runtime/app_controller_thread_skills_suite_thread_isolation.dart test/runtime/app_controller_assistant_flow_test.dart 主线关键 case已是当前测试重心之一
线程隔离 A/B 线程切换后技能、provider、artifact 不串线 已设计 + 已自动化 runtime test/runtime/app_controller_thread_skills_suite_thread_isolation.dart test/runtime/app_controller_execution_target_switch_suite_thread.dart 当前已有明确 suite
失败恢复 错误 endpoint / 失败任务在原线程展示清晰错误,允许原线程重试 已设计 + 部分自动化 runtime / feature test/runtime/gateway_acp_client_suite.dart test/features/settings_page_gateway_acp_messages_suite.dart 线程级失败回退还可继续加强
结果表面一致性 本地执行型与在线执行型都通过统一 result surface 暴露结果 已设计 + 部分自动化 runtime / feature test/runtime/desktop_thread_artifact_service_test.dart 统一 artifact surface 已有基础,但在线媒体任务仍是缺口
UI 冒烟 登录流程、首页流程、桌面导航流程、桌面设置流程 已自动化 integration integration_test/login_flow_test.dart integration_test/home_flow_test.dart integration_test/desktop_navigation_flow_test.dart integration_test/desktop_settings_flow_test.dart 更偏入口联通验证,不替代业务细场景

4. 按层看当前测试重点

测试层 当前主要承担的场景
runtime endpoint 规范化、账户同步、secret 边界、线程归属、provider 切换、artifact 回写、线程隔离
feature 设置页提示语与输入行为、assistant 页技能选择与提交、installed-skill E2E 壳层闭环
integration 桌面端导航、设置入口联通、登录与首页 happy path 冒烟
manual 在线媒体任务、外部服务依赖场景、需要真实服务/真实账号/真实产物确认的 case

5. 当前最值得关注的缺口

5.1 媒体类 case 自动化不足

当前文档设计最完整、但自动化落地最薄弱的一组是媒体类能力:

  • image-resizer
  • image-cog
  • image-video-generation-editting
  • video-translator

现状:

  • 手动 case 已定义
  • 自动化规划已给出首选落点
  • 但已落地的 installed-skill E2E harness 目前只稳定覆盖 pptx / docx / xlsx / pdf

参考:

5.2 在线任务结果面一致性仍需补齐

当前线程、artifact、provider 切换的基础 suite 已经比较完整,但“在线长任务的轮询状态 + 统一 artifact result surface”仍有补强空间尤其是

  • 长任务中间态是否稳定可见
  • 失败是否稳定回写线程消息
  • 在线结果是否与本地结果保持统一展示模型

6. 建议维护方式

后续新增 case 时,建议同时更新三处:

  1. 原始 case 文档
  2. 本总表
    • 更新“当前状态 / 主要落点 / 缺口”
  3. 验证记录
    • 如果场景首次自动化落地或完成专项验收,补一份 docs/reports/ 报告

7. 快速结论

如果只看“目前设计的典型测试场景”,当前主线已经比较清晰地覆盖了四个核心面:

  • 设置与连接配置
  • 本地执行型线程任务
  • 在线执行型线程任务
  • 线程连续性、隔离与结果面一致性

其中最成熟的是:

  • 设置配置与 endpoint/security 边界
  • 文档类本地技能线程链路
  • 线程隔离与连续追问

其中最需要继续补的是:

  • 媒体类技能自动化
  • 在线长任务闭环
  • 更贴近真实交互的桌面集成回归