质量工程迭代循环Skill "QEIterativeLoop"

该技能是一种质量工程迭代循环方法,用于自主改进软件测试、达成覆盖目标、确保质量门合规和稳定不稳定测试。它通过AI代理迭代执行,集成AQE v3代理舰队进行协调,提高软件开发质量。关键词:质量工程、迭代循环、测试自动化、覆盖分析、质量门、AI代理、软件开发、测试改进。

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

名称: “QE 迭代循环” 描述: “质量工程迭代循环,用于自主测试改进、覆盖目标达成和质量门合规。在需要测试通过、覆盖目标必须满足、质量门需要合规或不稳定测试需要稳定时使用。与AQE v3代理舰队集成,进行协调的质量迭代。” 信任等级: 2 验证: 架构路径: schemas/output.json 验证器路径: scripts/validate-config.json


QE 迭代循环

概述

QE 迭代循环是Ralph Wiggum技术针对质量工程工作流的专业化适配。它支持自主、自我纠正的质量周期,AI代理迭代直到质量目标达成——测试通过、覆盖目标满足、质量门合格或不稳定测试稳定。

为什么QE受益于迭代

质量工程具有客观、可衡量的成功标准:

  • 测试要么通过要么失败(退出码0与非零)
  • 覆盖是可量化的(78.5% vs 80%目标)
  • 质量门具有二元结果(通过/失败)
  • 合同验证具有清晰的架构

这使得QE非常适合迭代循环——我们知道何时完成。

前提条件

  • AQE v3舰队初始化
  • 测试框架配置(Jest、Vitest、Pytest等)
  • 覆盖工具(c8、istanbul、coverage.py
  • 质量门定义

快速开始

模式1: 测试修复迭代

# 任务: 修复所有失败测试
/qe-loop "运行 npm test 并修复所有失败测试。
成功: npm test 以退出码0退出
当所有测试通过时输出 <promise>TESTS_GREEN</promise>。"

模式2: 覆盖目标迭代

# 任务: 达成80%覆盖
/qe-loop "将测试覆盖提高到80%。
成功: 覆盖报告显示 >= 80%
当目标达成时输出 <promise>COVERAGE_MET</promise>。"

模式3: 质量门迭代

# 任务: 通过所有质量门
/qe-loop "为部署通过所有质量门。
门:
- 单元测试: 通过
- 集成测试: 通过
- 覆盖: >= 80%
- 无关键漏洞
- 性能 < 200ms P95
当所有通过时输出 <promise>QUALITY_GATES_PASSED</promise>。"

QE 迭代模式

模式1: 测试修复迭代循环

目标: 所有测试通过

## QE 测试修复循环

### 成功标准
- `npm test`(或测试命令)返回退出码0
- 无跳过测试(除非明确允许)
- 无待处理测试

### 迭代步骤
1. 运行完整测试套件
2. 解析输出以查找失败
3. 分析第一个失败:
   - 识别失败测试文件
   - 理解失败的断言
   - 检查生产代码或测试是否错误
4. 修复问题
5. 仅重新运行失败测试文件(更快反馈)
6. 如果文件通过,运行完整套件
7. 如果所有通过 -> 输出 <promise>TESTS_GREEN</promise>
8. 如果仍有失败 -> 继续到下一个失败

### 安全性
- 最大迭代次数: 30
- 10次迭代后: 报告剩余失败
- 如果同一测试失败5次则停止(可能设计问题)

模式2: 覆盖改进循环

目标: 达成覆盖目标

## QE 覆盖循环

### 成功标准
- 行覆盖 >= {目标}%
- 分支覆盖 >= {目标 - 5}%(通常较低目标)
- 无关键路径未覆盖

### 迭代步骤
1. 运行带覆盖的测试: `npm test -- --coverage`
2. 解析覆盖报告
3. 如果目标达成 -> 输出 <promise>COVERAGE_MET</promise>
4. 识别未覆盖文件,按以下排序:
   - 关键业务逻辑(最高优先级)
   - 未覆盖行(最大影响)
   - 复杂度(McCabe得分)
5. 为最高影响未覆盖代码生成测试
6. 运行测试以验证新测试通过
7. 检查覆盖改进
8. 继续直到目标达成

### 智能集成
- 在内存中存储成功测试模式
- 从覆盖成就中学习
- 预测最佳覆盖策略

### 命令
```bash
# 检查覆盖状态(通过AQE MCP)
mcp__agentic-qe__memory_retrieve --key "coverage-status" --namespace "coverage"

# 存储覆盖成就模式(通过AQE MCP)
mcp__agentic-qe__memory_store \
  --key "coverage-pattern-auth" \
  --value '{"approach": "模拟外部依赖", "improvement": "12%"}' \
  --namespace "coverage-patterns"

### 模式3: 质量门合规循环

**目标**: 通过所有质量门

```markdown
## QE 质量门循环

### 门定义
| 门 | 标准 | 优先级 |
|------|----------|----------|
| 单元测试 | 所有通过 | P0 |
| 集成测试 | 所有通过 | P0 |
| 覆盖 | >= 80% | P1 |
| 代码检查 | 无错误 | P1 |
| 类型检查 | 无错误 | P1 |
| 安全 | 无关键/高CVE | P0 |
| 性能 | P95 < 200ms | P2 |

### 迭代策略
1. 运行所有门检查
2. 识别失败门(按优先级排序)
3. 修复最高优先级失败门
4. 重新运行该门以验证
5. 当门通过时,移动到下一个失败门
6. 当所有通过 -> 输出 <promise>QUALITY_GATES_PASSED</promise>

### 门检查命令
```bash
# 检查所有门
npm test && npm run lint && npm run typecheck && npm run coverage && npm audit

# 单个门检查
npm test                        # 单元测试
npm run test:integration        # 集成测试
npm run coverage               # 覆盖
npm run lint                   # 代码检查
npx tsc --noEmit               # 类型检查
npm audit --audit-level=high   # 安全
npm run benchmark              # 性能

与AQE v3集成

# 提交质量门评估任务
mcp__agentic-qe__quality_assess --runGate true

# 任务编排以符合门
mcp__agentic-qe__task_orchestrate --task "通过所有质量门" --strategy adaptive

### 模式4: 不稳定测试稳定化循环

**目标**: 消除测试不稳定性

```markdown
## QE 不稳定测试循环

### 不稳定性检测
1. 运行测试套件N次(例如,5次)
2. 识别不一致通过/失败的测试
3. 计算不稳定性得分:(不一致运行 / 总运行)

### 迭代步骤
1. 运行: `for i in {1..5}; do npm test; done`
2. 聚合每个测试的结果
3. 识别不稳定测试(部分通过,部分失败)
4. 对于每个不稳定测试:
   - 分析失败模式
   - 常见原因:
     - 时序问题(添加重试/等待)
     - 共享状态(隔离测试数据)
     - 网络调用(模拟外部服务)
     - 随机数据(使用确定性种子)
   - 应用适当修复
   - 重新运行5次以验证稳定性
5. 当所有测试稳定 -> 输出 <promise>TESTS_STABLE</promise>

### AQE v3 不稳定检测
```bash
# 使用 qe-flaky-hunter 代理
Task("猎杀不稳定测试", "检测和稳定不稳定测试", "qe-flaky-hunter")

# 或提交不稳定检测任务
mcp__agentic-qe__task_submit --type "flaky-detection" --priority "p1"

### 模式5: 合同验证循环

**目标**: API合同对齐

```markdown
## QE 合同循环

### 成功标准
- 提供者实现所有消费者合同
- 无破坏性更改检测
- 架构验证通过

### 迭代步骤
1. 运行合同测试: `npm run test:contracts`
2. 解析合同违规
3. 对于每个违规:
   - 确定提供者或消费者需要更新
   - 更新适当方
   - 重新运行合同测试
4. 当所有合同有效 -> 输出 <promise>CONTRACTS_VALID</promise>

### AQE v3 集成
```bash
# 验证合同
mcp__agentic-qe__contract_validate --contractPath "./contracts"

# 或使用专门代理
Task("验证API合同", "检查消费者-提供者对齐", "qe-contract-validator")

---

## AQE v3 舰队集成

### 生成QE迭代代理

```bash
# 为QE迭代初始化AQE舰队
mcp__agentic-qe__fleet_init --topology "hierarchical" --maxAgents 8

# 使用Task工具生成专门QE迭代器
Task("修复失败测试", "迭代直到所有测试通过", "qe-tdd-green", {run_in_background: true})
Task("改进覆盖", "迭代直到80%覆盖", "qe-coverage-analyzer", {run_in_background: true})
Task("修复安全问题", "迭代直到安全扫描通过", "qe-security-scanner", {run_in_background: true})
Task("稳定不稳定测试", "迭代直到测试稳定", "qe-flaky-hunter", {run_in_background: true})

内存增强QE迭代

# 为学习存储迭代模式(通过AQE MCP)
mcp__agentic-qe__memory_store \
  --key "qe-iteration-test-fix" \
  --value '{"approach": "模拟外部依赖", "success_rate": 0.85}' \
  --namespace "qe-patterns"

# 搜索相关QE模式(通过AQE MCP)
mcp__agentic-qe__memory_query \
  --pattern "test-fix-*" \
  --namespace "qe-patterns"

# 记录成功迭代完成(通过AQE任务跟踪)
mcp__agentic-qe__task_status --taskId "test-fix-iteration"

QE特定代理路由

QE任务 推荐代理 迭代目标
测试修复 qe-tdd-green 所有测试通过
覆盖缺口 qe-coverage-analyzer 目标覆盖达成
质量门 qe-quality-gate 所有门通过
不稳定测试 qe-flaky-hunter 测试稳定
合同验证 qe-contract-validator 合同对齐
安全修复 qe-security-scanner 无漏洞
性能 qe-performance-validator 基准测试通过

QE的完成承诺

标准QE承诺

# 测试相关
<promise>TESTS_GREEN</promise>       # 所有测试通过
<promise>TESTS_STABLE</promise>      # 不稳定测试修复
<promise>TDD_COMPLETE</promise>      # TDD循环完成

# 覆盖相关
<promise>COVERAGE_MET</promise>      # 目标覆盖达成
<promise>GAPS_FILLED</promise>       # 覆盖缺口解决

# 质量门
<promise>QUALITY_GATES_PASSED</promise>  # 所有门通过
<promise>DEPLOYMENT_READY</promise>      # 准备好部署

# 合同/API
<promise>CONTRACTS_VALID</promise>   # 合同对齐
<promise>API_COMPLIANT</promise>     # API匹配规范

# 安全
<promise>SECURITY_CLEARED</promise>  # 无漏洞
<promise>COMPLIANCE_MET</promise>    # 合规要求满足

# 性能
<promise>PERF_TARGET_MET</promise>   # 基准测试满足

示例: 完整QE迭代工作流

## 完整QE迭代任务

### 目标
通过迭代质量改进实现部署准备就绪

### 阶段1: 测试健康(优先级)
1. 运行 `npm test`
2. 迭代修复失败测试
3. 成功: <promise>TESTS_GREEN</promise>

### 阶段2: 覆盖(阶段1后)
1. 运行 `npm test -- --coverage`
2. 为未覆盖关键路径编写测试
3. 成功: 覆盖 >= 80% -> <promise>COVERAGE_MET</promise>

### 阶段3: 质量门(阶段2后)
1. 运行代码检查: `npm run lint`
2. 运行类型检查: `npx tsc --noEmit`
3. 修复任何违规
4. 成功: <promise>LINT_PASS</promise> + <promise>TYPES_PASS</promise>

### 阶段4: 安全(与阶段3并行)
1. 运行 `npm audit`
2. 修复关键/高漏洞
3. 成功: <promise>SECURITY_CLEARED</promise>

### 阶段5: 集成
1. 运行 `npm run test:integration`
2. 修复任何集成失败
3. 成功: <promise>INTEGRATION_PASS</promise>

### 最终门
当所有阶段完成 -> <promise>DEPLOYMENT_READY</promise>

### 安全限制
- 每个阶段最大迭代次数: 15
- 总最大迭代次数: 50
- 卡住检测: 5次迭代无进展触发升级

故障排除

问题: 测试持续失败相同断言

原因: 可能是设计问题,而非实现错误

解决方案:

  1. 在同一测试上尝试5次后停止迭代
  2. 分析测试期望是否正确
  3. 审查生产行为是否符合设计
  4. 如果不明确,升级到人工审查

问题: 覆盖平台期

原因: 剩余未覆盖代码复杂/有条件

解决方案:

  1. 识别未覆盖分支(不仅是行)
  2. 生成边缘案例测试
  3. 考虑未覆盖代码是否为死代码
  4. 对于真正不可测试代码接受较低目标

问题: 不稳定测试无法稳定

原因: 深度时序或状态问题

解决方案:

  1. 添加显式等待/重试
  2. 模拟时间依赖行为
  3. 隔离测试环境
  4. 考虑标记为跳过并提供解释

相关技能

资源


起源: 改编自Ralph Wiggum插件(anthropics/claude-code) 专门用于: 代理化QE v3舰队,具有60个QE代理 领域: 测试生成、测试执行、覆盖分析、质量评估