SuperAPI AI 工具集

test-roadmap

测试与质量

查看项目

更新于 10-16 07:46

技能介绍

用途

test-roadmap 是一个用于为代码仓库规划并逐步构建测试套件的技能,属于 paad 技能集(来源 ovid/paad)。它分析仓库及现有测试套件,评估现有测试的薄弱程度,对 mock 进行分类,并输出一份分阶段的测试套件建设路线图。与评审类技能不同,它会实际编写代码并提交:测试按阶段逐个提交到当前工作分支。

主要能力

  • 分析仓库与已有测试套件,识别技术栈与测试调用方式。
  • 对现有测试进行薄弱程度评分(Grade)。
  • 对 mock 进行分类。
  • 输出分阶段的测试套件建设路线图。
  • 按阶段编写测试,每个阶段一次提交。
  • 执行 break-it-check(通过缺陷注入验证测试有效性)。
  • 识别疑似缺陷,并按安全相关性分流记录。

使用方式

调用时先宣告 “Running paad:test-roadmap v2.0.0”,然后立即继续执行后续步骤。

配置(实验性):宣告后检查工作目录下是否存在 paad/config/paad.md 与 paad/config/test-roadmap.md。若存在则读取并遵循其指示,将相关部分传递给每个子代理,并在最终答案首行标注 Config: <path>。若不存在则不提及配置。配置不会改变子代理类型,也不会授予其写入工具;配置可以覆盖下方流程。

路由逻辑:

  • 若 paad/test-roadmap/test-roadmap.md 存在,加载 references/execute-test-roadmap.md(执行模式:下一阶段、break-it-check、提交)。
  • 若不存在,加载 references/build-test-roadmap.md(构建模式:Detect、Grade、Plan、Critique、Write)。

前置条件:

  • 必须位于 git 仓库内,否则说明并停止。
  • 必须位于工作分支而非主开发分支。主分支识别顺序:分离 HEAD 状态;仓库自身的默认分支指针(origin/HEAD);若无该指针则回退到常见主分支名(main、master、trunk、develop 等);若仍无法确认则询问开发者。若当前在主分支或 HEAD 分离,会说明原因并建议创建名为 test-roadmap 的工作分支,经同意后执行 git switch -c <name>(旧版 git 用 git checkout -b <name>)。若开发者拒绝则停止,绝不在主分支上构建或执行。

构建模式:Stage 1 Detect 从清单与配置(package.json、pyproject.toml、go.mod、Cargo.toml、Gemfile 等)识别技术栈,确定测试调用方式与已有测试文件,不硬编码语言。完整五阶段协议见 references/build-test-roadmap.md。

执行模式:读取路线图的 ## Decisions 部分一次,按完成协议选择下一阶段并编写测试,不重新检测或重新询问构建模式已确定的内容。

安全发现处理

安全相关发现(任何 OWASP Top 10:2025 类别,以及支付、租户隔离、密钥处理路径中的内容;边界情况按安全处理)仅写入 paad/security/ 下以本技能命名的文件。首次写入前需确保 paad/security/.gitignore 存在且仅含一行 *,且 git ls-files paad/security/ 无输出。若该文件内容不符、无法写入、git 已跟踪其中内容或后续写入失败,则不写安全发现与计数行,告知用户并询问是暂存还是放入普通报告。普通报告中对应位置只写一行 “N security finding(s) written to paad/security/<file>”。

适用场景

  • 需要为已有仓库系统性地规划测试套件。
  • 需要评估现有测试质量并识别薄弱环节。
  • 需要按阶段逐步补充测试并逐次提交。
  • 需要在测试编写过程中发现并分流疑似缺陷。

限制

  • 需要可用的 git 检出;构建模式会针对当前树展开评分子代理,执行模式的 break-it-check 在一次性 git worktree 中运行缺陷注入。
  • 不在主开发分支上运行,避免半成品测试套件落到主分支。
  • 路由仅有一个文件存在性检查、两条分支;若出现第三个条件说明内容放错了位置。
  • 路由器本身不直接加载 references/break-it-check.md、references/test-pushback.md、references/test-theater.md,由两个模式文件在需要时加载。
  • paad/security/ 是临时目录而非状态:仅存在于本机,git clean -x 会删除它且无法恢复。
  • 关于具体收费、价格、平台支持范围等事实,资料暂未提供。