测试修复循环工作流Skill workflow-test-fix-cycle

这是一个自动化测试修复工作流技能,用于生成包含渐进层(L0-L3)的测试会话,并执行迭代修复循环,直到通过率≥95%。它结合AI代码验证、任务生成和自适应策略引擎,实现端到端的软件测试自动化。关键词:测试修复、工作流自动化、AI验证、迭代循环、软件测试、质量保证。

测试 0 次安装 2 次浏览 更新于 3/16/2026

name: 测试修复循环工作流 description: 端到端的测试修复工作流:生成包含渐进层(L0-L3)的测试会话,然后执行迭代修复循环,直到通过率 >= 95%。结合测试修复生成和测试循环执行,形成一个统一的工作流管道。在 “workflow:test-fix-cycle” 上触发。 allowed-tools: spawn_agent, wait, send_input, close_agent, AskUserQuestion, Read, Write, Edit, Bash, Glob, Grep

工作流测试修复循环

端到端的测试修复工作流管道:生成包含渐进层(L0-L3)的测试会话、AI代码验证和任务生成(阶段1),然后执行包含自适应策略引擎的迭代修复循环,直到通过率 >= 95%(阶段2)。

架构概述

┌────────────────────────────────────────────────────────────────────────────┐
│  工作流测试修复循环协调器(SKILL.md)                                      │
│  → 完整管道:测试生成 + 迭代执行                                           │
│  → 阶段调度:读取阶段文档、执行、传递上下文                                 │
└───────────────┬────────────────────────────────────────────────────────────┘
                │
   ┌────────────┴────────────────────────┐
   ↓                                     ↓
┌─────────────────────────┐   ┌─────────────────────────────┐
│ 阶段1:测试修复生成     │   │ 阶段2:测试循环执行          │
│ phases/01-test-fix-gen  │   │ phases/02-test-cycle-execute │
│ 5个子阶段:              │   │ 3个阶段:                    │
│ ① 创建会话              │   │ ① 发现                       │
│ ② 收集上下文            │   │ ② 主循环(迭代)              │
│ ③ 测试分析(Gemini)    │   │ ③ 完成                       │
│ ④ 生成任务              │   │                              │
│ ⑤ 摘要                  │   │ 代理(通过spawn_agent):     │
│                         │   │ @cli-planning-agent           │
│ 代理(通过spawn_agent)  │   │ @test-fix-agent               │
│ @test-context-search    │   │                              │
│ @context-search         │   │ 策略:保守 →                  │
│ @cli-execution          │   │ 激进 → 外科式                  │
│ @action-planning        │   │                              │
└────────┬────────────────┘   └────────────┬──────────────────┘
         ↓                                 ↓
   IMPL-001..002.json              通过率 >= 95%
   TEST_ANALYSIS_RESULTS.md        自动完成会话

任务管道:
┌──────────────┐    ┌─────────────────┐    ┌─────────────────┐    ┌──────────────┐
│  IMPL-001    │───→│  IMPL-001.3     │───→│  IMPL-001.5     │───→│  IMPL-002    │
│  测试生成    │    │  代码验证        │    │  质量门          │    │  测试与修复  │
│  L1-L3       │    │  L0 + AI问题     │    │  覆盖率80%+      │    │  最多10次迭代 │
│@code-developer│   │ @test-fix-agent │    │ @test-fix-agent │    │@test-fix-agent│
└──────────────┘    └─────────────────┘    └─────────────────┘    └──────────────┘
                                                                        │
                                                              修复循环:│
                                                    ┌──────────────────┘
                                                    ↓
                                              ┌──────────┐
                                              │ @cli-plan│───→ IMPL-fix-N.json
                                              │  代理     │
                                              ├──────────┤
                                              │@test-fix │───→ 应用和重新测试
                                              │  代理     │
                                              └──────────┘

关键设计原则

  1. 两阶段管道:生成(阶段1)创建会话和任务,执行(阶段2)运行迭代修复循环
  2. 纯协调器:调度到阶段文档,解析输出,在阶段间传递上下文
  3. 自动继续:触发后全管道自主运行
  4. 子代理生命周期:明确的生命周期管理,使用spawn_agent → wait → close_agent
  5. 渐进测试层:L0(静态)→ L1(单元)→ L2(集成)→ L3(端到端)
  6. AI代码问题检测:验证常见AI生成代码问题
  7. 智能策略引擎:基于迭代上下文,保守 → 激进 → 外科式
  8. CLI回退链:Gemini → Qwen → Codex,用于分析弹性
  9. 渐进测试:迭代期间受影响的测试,最终验证完整套件
  10. 角色路径加载:子代理角色通过MANDATORY FIRST STEPS中的路径引用加载

自动模式

此工作流完全自主——阶段1生成测试会话和任务,阶段2执行迭代修复循环,所有无需用户干预,直到通过率 >= 95%或达到最大迭代次数。

子代理API参考

spawn_agent

使用任务分配创建新子代理。

const agentId = spawn_agent({
  message: `
## 任务分配

### MANDATORY FIRST STEPS(代理执行)
1. **读取角色定义**:~/.codex/agents/{agent-type}.md(必须首先读取)
2. 读取:${projectRoot}/.workflow/project-tech.json
3. 读取:${projectRoot}/.workflow/project-guidelines.json

## 任务上下文
${taskContext}

## 交付物
${deliverables}
`
})

wait

从子代理获取结果(唯一检索结果的方式)。

const result = wait({
  ids: [agentId],
  timeout_ms: 600000  // 10分钟
})

if (result.timed_out) {
  // 处理超时——可以继续等待或使用send_input提示完成
}

send_input

与活动子代理继续交互(用于澄清或后续操作)。

send_input({
  id: agentId,
  message: `
## 澄清答案
${answers}

## 下一步
继续计划生成。
`
})

close_agent

清理子代理资源(不可逆)。

close_agent({ id: agentId })

用法

workflow-test-fix-cycle <input> [options]

# 输入(阶段1 - 测试生成)
source-session-id    WFS-* 会话ID(会话模式 - 用于已完成实现的测试验证)
feature description  要测试的功能描述(提示模式)
/path/to/file.md     需求文件路径(提示模式)

# 选项(阶段2 - 循环执行)
--max-iterations=N   自定义迭代限制(默认:10)

# 示例
workflow-test-fix-cycle WFS-user-auth-v2                                              # 会话模式
workflow-test-fix-cycle "测试src/auth/api.ts中的用户认证API端点"                       # 提示模式 - 文本
workflow-test-fix-cycle ./docs/api-requirements.md                                     # 提示模式 - 文件
workflow-test-fix-cycle "测试用户注册" --max-iterations=15                              # 使用自定义迭代

# 恢复(仅阶段2 - 会话已创建)
workflow-test-fix-cycle --resume-session="WFS-test-user-auth"                          # 恢复中断会话

质量门:测试通过率 >= 95%(基于关键性)或 100% 最大迭代次数:10(默认,可调整) CLI工具:Gemini → Qwen → Codex(回退链)

测试策略概述

渐进测试层(L0-L3):

名称 焦点
L0 静态分析 编译、导入、类型、AI代码问题
L1 单元测试 函数/类行为(正常/负面/边缘情况)
L2 集成测试 组件交互、API合约、失败模式
L3 端到端测试 用户旅程、关键路径(可选)

关键特性

  • AI代码问题检测 - 验证常见AI生成代码问题(幻觉导入、占位符代码、模拟泄漏等)
  • 项目类型检测 - 应用适当的测试模板(React、Node API、CLI、库等)
  • 质量门 - IMPL-001.3(代码验证)和IMPL-001.5(测试质量)确保高标准

详细规格:请参阅test-task-generate工作流工具,了解完整的L0-L3要求和质量阈值。

执行流程

输入 → 检测模式(会话 | 提示 | 恢复)
  │
  ├─ 恢复模式 → 跳转到阶段2
  │
  └─ 会话/提示模式 → 阶段1
       │
阶段1:测试修复生成(phases/01-test-fix-gen.md)
  ├─ 子阶段1.1:创建测试会话 → testSessionId
  ├─ 子阶段1.2:收集测试上下文(spawn_agent) → contextPath
  ├─ 子阶段1.3:测试生成分析(spawn_agent → Gemini) → TEST_ANALYSIS_RESULTS.md
  ├─ 子阶段1.4:生成测试任务(spawn_agent) → IMPL-*.json, IMPL_PLAN.md, TODO_LIST.md
  └─ 子阶段1.5:阶段1摘要
       │
阶段2:测试循环执行(phases/02-test-cycle-execute.md)
  ├─ 发现:加载会话、任务、迭代状态
  ├─ 主循环(针对每个任务):
  │   ├─ 执行 → 测试 → 计算通过率
  │   ├─ 100% → 成功:下一个任务
  │   ├─ 95-99% + 低关键性 → 部分成功:批准
  │   └─ <95% → 修复循环:
  │       ├─ 选择策略:保守/激进/外科式
  │       ├─ spawn_agent(@cli-planning-agent) → IMPL-fix-N.json
  │       ├─ spawn_agent(@test-fix-agent) → 应用修复和重新测试
  │       └─ 重新测试 → 返回决策
  └─ 完成:最终验证 → 摘要 → 自动完成会话

核心规则

  1. 立即开始:第一个动作是进度跟踪初始化
  2. 无初步分析:在阶段1之前不要读取文件
  3. 解析每个输出:为下一阶段提取数据
  4. 自动继续:每个阶段完成后,自动执行下一个待处理阶段
  5. 阶段加载:按需读取阶段文档(phases/01-*.mdphases/02-*.md
  6. 任务附件模型:子任务附加 → 执行 → 折叠
  7. 关键:不要停止:连续管道直到阶段2完成
  8. 阶段转换:阶段1摘要后,立即开始阶段2
  9. 明确生命周期:等待完成后始终使用close_agent释放资源

阶段执行

阶段1:测试修复生成

读取phases/01-test-fix-gen.md

5个子阶段,创建测试会话并生成任务JSON:

  1. 创建测试会话 → testSessionId
  2. 收集测试上下文(spawn_agent → wait → close_agent) → contextPath
  3. 测试生成分析(spawn_agent → wait → close_agent) → TEST_ANALYSIS_RESULTS.md
  4. 生成测试任务(spawn_agent → wait → close_agent) → IMPL-001.jsonIMPL-001.3.jsonIMPL-001.5.jsonIMPL-002.jsonIMPL_PLAN.mdTODO_LIST.md
  5. 阶段1摘要(内部 - 转换到阶段2)

使用的代理(通过spawn_agent):

  • test-context-search-agent(~/.codex/agents/test-context-search-agent.md) - 上下文收集(会话模式)
  • context-search-agent(~/.codex/agents/context-search-agent.md) - 上下文收集(提示模式)
  • cli-execution-agent(~/.codex/agents/cli-execution-agent.md) - 使用Gemini进行测试分析
  • action-planning-agent(~/.codex/agents/action-planning-agent.md) - 任务JSON生成

阶段2:测试循环执行

读取phases/02-test-cycle-execute.md

3阶段迭代执行,带有自适应策略:

  1. 发现 - 加载会话、任务、迭代状态
  2. 主循环 - 执行任务 → 测试 → 分析失败 → 修复 → 重新测试
  3. 完成 - 最终验证 → 摘要 → 自动完成会话

使用的代理(通过spawn_agent):

  • cli-planning-agent(~/.codex/agents/cli-planning-agent.md) - 失败分析、根因提取、修复任务生成
  • test-fix-agent(~/.codex/agents/test-fix-agent.md) - 测试执行、代码修复、关键性分配

策略引擎:保守(迭代1-2)→ 激进(通过率>80%)→ 外科式(回归)

输出工件

目录结构

{projectRoot}/.workflow/active/WFS-test-[会话]/
├── workflow-session.json              # 会话元数据
├── IMPL_PLAN.md                       # 测试生成和执行策略
├── TODO_LIST.md                       # 任务清单
├── .task/
│   ├── IMPL-001.json                  # 测试理解和生成
│   ├── IMPL-001.3-validation.json     # 代码验证门
│   ├── IMPL-001.5-review.json         # 测试质量门
│   ├── IMPL-002.json                  # 测试执行和修复循环
│   └── IMPL-fix-{N}.json             # 生成的修复任务(阶段2)
├── .process/
│   ├── [test-]context-package.json    # 上下文和覆盖率分析
│   ├── TEST_ANALYSIS_RESULTS.md       # 测试需求和策略(L0-L3)
│   ├── iteration-state.json           # 当前迭代状态、策略、卡住测试
│   ├── test-results.json              # 最新结果(通过率、关键性)
│   ├── test-output.log                # 完整测试输出
│   ├── fix-history.json               # 所有修复尝试
│   ├── iteration-{N}-analysis.md      # CLI分析报告
│   └── iteration-{N}-cli-output.txt
└── .summaries/iteration-summaries/

进度跟踪模式

阶段1(生成):

[
  { content: "阶段1:测试修复生成", status: "in_progress" },
  { content: "  1.1 创建测试会话", status: "completed" },
  { content: "  1.2 收集测试上下文", status: "in_progress" },
  { content: "  1.3 测试生成分析", status: "pending" },
  { content: "  1.4 生成测试任务", status: "pending" },
  { content: "  1.5 阶段摘要", status: "pending" },
  { content: "阶段2:测试循环执行", status: "pending" }
]

阶段2(执行):

[
  { content: "阶段1:测试修复生成", status: "completed" },
  { content: "阶段2:测试循环执行", status: "in_progress" },
  { content: "  执行IMPL-001:生成测试[code-developer]", status: "completed" },
  { content: "  执行IMPL-002:测试与修复循环[迭代]", status: "in_progress" },
  { content: "    → 迭代1:初始测试(通过率:70%,保守)", status: "completed" },
  { content: "    → 迭代2:修复验证(通过率:82%,保守)", status: "completed" },
  { content: "    → 迭代3:批量修复认证(通过率:89%,激进)", status: "in_progress" }
]

更新规则

  • 阶段1:在阶段1内附加/折叠子阶段任务
  • 阶段2:添加迭代项,包括策略和通过率
  • 每个阶段/迭代完成后标记为完成
  • 所有完成后更新父任务

错误处理

阶段 场景 行动
1.1 源会话未找到(会话模式) 返回错误,包含会话ID
1.1 无完成IMPL任务(会话模式) 返回错误,源不完整
1.2 上下文收集失败 返回错误,检查源工件
1.2 代理超时 重试延长超时,close_agent,然后返回错误
1.3 Gemini分析失败 返回错误,检查上下文包
1.4 任务生成失败 重试一次,然后返回错误
2 测试执行错误 记录日志,使用错误上下文重试
2 CLI分析失败 回退:Gemini → Qwen → Codex → 手动
2 代理执行错误 保存状态,close_agent,使用简化上下文重试
2 达到最大迭代次数 生成失败报告,标记为阻塞
2 检测到回归 回滚最后修复,切换到外科式策略
2 检测到卡住测试 使用替代策略继续,在失败报告中记录

生命周期错误处理

try {
  const agentId = spawn_agent({ message: "..." });
  const result = wait({ ids: [agentId], timeout_ms: 600000 });
  // ... 处理结果 ...
  close_agent({ id: agentId });
} catch (error) {
  if (agentId) close_agent({ id: agentId });
  throw error;
}

协调器清单

阶段1(生成)

  • 检测输入类型(会话ID / 描述 / 文件路径 / 恢复)
  • 使用2个顶级阶段初始化进度跟踪
  • 读取phases/01-test-fix-gen.md以获取详细子阶段执行
  • 使用spawn_agent → wait → close_agent生命周期执行5个子阶段
  • 验证所有阶段1输出(4+个任务JSON、IMPL_PLAN.md、TODO_LIST.md)
  • 确保所有代理在每个子阶段完成后关闭

阶段2(执行)

  • 读取phases/02-test-cycle-execute.md以获取详细执行逻辑
  • 加载会话状态和任务队列
  • 使用spawn_agent → wait → close_agent执行迭代测试修复循环
  • 在进度跟踪中跟踪迭代
  • 成功时自动完成会话(通过率 >= 95%)
  • 确保所有代理在每个迭代完成后关闭

恢复模式

  • 如果提供--resume-session,跳过阶段1
  • 直接加载现有会话到阶段2

相关技能

先决技能

  • workflow:planworkflow:execute - 完整实现(会话模式)
  • 无,对于提示模式

阶段1代理(通过phases/01-test-fix-gen.md使用spawn_agent):

  • test-context-search-agent(~/.codex/agents/test-context-search-agent.md) - 测试覆盖率分析(会话模式)
  • context-search-agent(~/.codex/agents/context-search-agent.md) - 代码库分析(提示模式)
  • cli-execution-agent(~/.codex/agents/cli-execution-agent.md) - 使用Gemini进行测试需求分析
  • action-planning-agent(~/.codex/agents/action-planning-agent.md) - 任务JSON生成

阶段2代理(通过phases/02-test-cycle-execute.md使用spawn_agent):

  • cli-planning-agent(~/.codex/agents/cli-planning-agent.md) - CLI分析、根因提取、任务生成
  • test-fix-agent(~/.codex/agents/test-fix-agent.md) - 测试执行、代码修复、关键性分配

后续

  • 成功时自动完成会话
  • 为后续工作创建问题(完成后的扩展)