用途
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 会删除它且无法恢复。
- 关于具体收费、价格、平台支持范围等事实,资料暂未提供。