名称: qcsd-refinement-swarm 描述: “QCSD精炼阶段群集,用于冲刺精炼会议,使用SFDIPOT产品因素、BDD场景生成和需求验证。” 类别: qcsd-phases 优先级: critical 版本: 1.0.0 令牌估计: 3200
DDD领域映射 (来自 QCSD-AGENTIC-QE-MAPPING-FRAMEWORK.md)
领域: 主要: - 领域: requirements-validation 代理: [qe-product-factors-assessor, qe-bdd-generator, qe-requirements-validator] 条件: - 领域: contract-testing 代理: [qe-contract-validator] - 领域: code-intelligence 代理: [qe-impact-analyzer, qe-dependency-mapper] - 领域: enterprise-integration 代理: [qe-middleware-validator, qe-odata-contract-tester, qe-sod-analyzer] 转换: - 领域: test-generation 代理: [qe-test-idea-rewriter]
代理清单
代理: 核心: [qe-product-factors-assessor, qe-bdd-generator, qe-requirements-validator] 条件: [qe-contract-validator, qe-impact-analyzer, qe-dependency-mapper, qe-middleware-validator, qe-odata-contract-tester, qe-sod-analyzer] 转换: [qe-test-idea-rewriter] 总计: 10 子代理: 0 技能: [context-driven-testing, testability-scoring, risk-based-testing]
执行模型 (任务工具是主要的)
执行: 主要: task-tool 替代: [mcp-tools, cli] 群集模式: true 并行批次: 3 最后更新: 2026-02-02 强制级别: strict 标签: [qcsd, refinement, sfdipot, bdd, gherkin, requirements, swarm, parallel, ddd] 信任层级: 3 验证: 架构路径: schemas/output.json 验证器路径: scripts/validate-config.json 评估路径: evals/qcsd-refinement-swarm.yaml
QCSD精炼群集 v1.0
用于冲刺精炼会议的左移质量工程群集。
概述
精炼群集接收通过构思阶段的用户故事,并为冲刺承诺做准备。构思群集使用HTSM质量标准问“我们应该构建这个吗?”,精炼群集则使用SFDIPOT产品因素、BDD场景和INVEST验证问“我们应该如何测试这个?”。
与构思群集的主要区别
| 维度 | 构思群集 | 精炼群集 |
|---|---|---|
| 框架 | HTSM v6.3 (10个类别) | SFDIPOT (7个因素, 37个子类别) |
| 代理 | 9 (3个核心 + 6个条件) | 10 (3个核心 + 6个条件 + 1个转换) |
| 核心输出 | 质量标准HTML报告 | BDD Gherkin场景 |
| 决策 | GO / CONDITIONAL / NO-GO | READY / CONDITIONAL / NOT-READY |
| 标志 | HAS_UI, HAS_SECURITY, HAS_UX, HAS_MIDDLEWARE, HAS_SAP_INTEGRATION, HAS_AUTHORIZATION | HAS_API, HAS_REFACTORING, HAS_DEPENDENCIES, HAS_SECURITY, HAS_MIDDLEWARE, HAS_SAP_INTEGRATION, HAS_AUTHORIZATION |
| 阶段 | PI规划 / 冲刺规划 | 冲刺精炼 |
| 最终步骤 | 报告生成 | 测试想法重写器转换 |
强制规则 - 首先阅读
这些规则是不可协商的。违反意味着技能执行失败。
| 规则 | 强制 |
|---|---|
| E1 | 你必须在阶段2中启动所有三个核心代理 (qe-product-factors-assessor, qe-bdd-generator, qe-requirements-validator)。没有例外。 |
| E2 | 你必须将所有并行任务调用放在一个单独的消息中。 |
| E3 | 你必须在每个批次后停止并等待。不要提前继续。 |
| E4 | 如果标志为TRUE,你必须启动条件代理。不要跳过。 |
| E5 | 你必须按照阶段5中指定的方式准确应用READY/CONDITIONAL/NOT-READY逻辑。 |
| E6 | 你必须生成完整的报告结构。没有缩写版本。 |
| E7 | 每个代理在分析前必须读取其参考文件。 |
| E8 | 你必须在阶段8中对所有测试想法应用qe-test-idea-rewriter转换。始终如此。 |
| E9 | 你必须执行阶段7的学习持久化。在阶段8之前存储精炼发现到内存。不要跳过。 |
禁止行为:
- 总结而不是启动代理
- 为了简洁而跳过代理
- 在后台任务完成前继续
- 提供你自己的分析而不是启动专家
- 省略报告部分
- 使用占位符文本如"[details here]"
- 跳过测试想法重写器转换
- 跳过学习持久化(阶段7)或将其视为可选
- 自己生成BDD场景而不是使用qe-bdd-generator
阶段1: 分析故事内容 (标志检测)
强制: 你必须在阶段2之前完成此分析。
扫描故事内容并设置这些标志。不要跳过任何标志。
标志检测 (检查所有七个)
HAS_API = FALSE
如果故事包含任何: API, 端点, REST, GraphQL, 合同,
集成, webhook, 微服务, 服务间, HTTP, gRPC,
请求, 响应, 负载, 模式, OpenAPI, Swagger, 消费者, 提供者
HAS_REFACTORING = FALSE
如果故事包含任何: 重构, 重新架构, 重写,
迁移, 现代化, 技术债务, 遗留, 重组, 解耦,
整合, 简化, 提取, 分解, 重新工程
HAS_DEPENDENCIES = FALSE
如果故事包含任何: 依赖, 耦合, 模块,
包, 库, 导入, 共享, 跨团队, 上游, 下游,
第三方, 外部, 供应商, SDK, 插件, 中间件
HAS_SECURITY = FALSE
如果故事包含任何: 认证, 安全, 凭证, 令牌,
加密, PII, 合规, 密码, 登录, 会话, OAuth, JWT,
权限, 角色, 访问控制, RBAC, 敏感, 私有
HAS_MIDDLEWARE = FALSE
如果故事包含任何: 中间件, ESB, 消息代理, MQ,
Kafka, RabbitMQ, 集成总线, API网关, 消息队列, 发布/订阅
HAS_SAP_INTEGRATION = FALSE
如果故事包含任何: SAP, RFC, BAPI, IDoc, OData,
S/4HANA, EWM, ECC, ABAP, CDS视图, Fiori
HAS_AUTHORIZATION = FALSE
如果故事包含任何: SoD, 职责分离,
角色冲突, 授权对象, T-code, 用户角色,
访问控制矩阵, GRC
验证检查点
在继续到阶段2之前,确认:
+-- 我阅读了整个故事内容
+-- 我评估了所有七个标志
+-- 我记录了哪些标志是TRUE
+-- 我理解了哪些条件代理将被需要
在确认所有复选框之前,不要继续到阶段2。
强制: 输出标志检测结果
你必须在继续前输出标志检测结果:
+-------------------------------------------------------------+
| 标志检测结果 |
+-------------------------------------------------------------+
| |
| HAS_API: [TRUE/FALSE] |
| 证据: [触发的内容 - 具体模式] |
| |
| HAS_REFACTORING: [TRUE/FALSE] |
| 证据: [触发的内容 - 具体模式] |
| |
| HAS_DEPENDENCIES: [TRUE/FALSE] |
| 证据: [触发的内容 - 具体模式] |
| |
| HAS_SECURITY: [TRUE/FALSE] |
| 证据: [触发的内容 - 具体模式] |
| |
| HAS_MIDDLEWARE: [TRUE/FALSE] |
| 证据: [触发的内容 - 具体] |
| |
| HAS_SAP_INTEGRATION: [TRUE/FALSE] |
| 证据: [触发的内容 - 具体] |
| |
| HAS_AUTHORIZATION: [TRUE/FALSE] |
| 证据: [触发的内容 - 具体] |
| |
| 预期代理: |
| - 核心: 3 (总是) |
| - 条件: [基于TRUE标志的计数] |
| - 转换: 1 (总是) |
| - 总计: [3 + 条件计数 + 1] |
| |
+-------------------------------------------------------------+
在输出标志检测结果之前,不要继续到阶段2。
阶段2: 启动核心代理 (并行批次1)
关键强制
+-------------------------------------------------------------+
| 你必须在下一个消息中包含所有三个任务调用 |
| |
| - 任务1: qe-product-factors-assessor |
| - 任务2: qe-bdd-generator |
| - 任务3: qe-requirements-validator |
| |
| 如果你的消息包含少于3个任务调用, 你已 |
| 失败此阶段。重新开始。 |
+-------------------------------------------------------------+
领域上下文
| 代理 | 领域 | MCP工具映射 |
|---|---|---|
| qe-product-factors-assessor | requirements-validation | requirements_validate |
| qe-bdd-generator | requirements-validation | test_generate_enhanced |
| qe-requirements-validator | requirements-validation | requirements_validate |
代理1: 产品因素评估器 (SFDIPOT)
此代理必须分析所有7个SFDIPOT因素及其37个子类别。少于则失败。
Task({
描述: "SFDIPOT产品因素分析",
提示: `你是qe-product-factors-assessor。你的输出质量正在被审计。
## 强制第一步 (不要跳过)
1. 首先阅读此模板文件 - 你的输出必须遵循此结构:
.claude/agents/v3/helpers/product-factors/sfdipot-reference-template.html
2. 在开始分析前,完整阅读以下故事内容。
## 待分析的故事
=== 故事内容开始 ===
[在此粘贴完整故事内容 - 不要总结]
=== 故事内容结束 ===
## 必需输出 (所有部分强制)
你必须分析所有7个SFDIPOT产品因素。对于每个因素,分析其子类别并分配优先级。
### 因素1: STRUCTURE (内部组成)
要评估的子类别:
- 代码架构和模块组织
- 数据库模式和数据结构
- 文件和目录结构
- 配置层次结构
- 组件关系
优先级: P0/P1/P2/P3 带理由
### 因素2: FUNCTION (功能)
要评估的子类别:
- 核心业务逻辑
- 输入处理和验证
- 输出生成和格式化
- 错误处理和恢复
- 状态管理和转换
优先级: P0/P1/P2/P3 带理由
### 因素3: DATA (数据)
要评估的子类别:
- 数据类型和格式
- 数据流和转换
- 数据持久性和存储
- 数据验证规则
- 数据量和增长模式
- 数据完整性约束
优先级: P0/P1/P2/P3 带理由
### 因素4: INTERFACES (接口)
要评估的子类别:
- 用户界面(如果适用)
- API合同和端点
- 事件/消息接口
- 基于文件的接口
- 硬件接口(如果适用)
- 系统间通信协议
优先级: P0/P1/P2/P3 带理由
### 因素5: PLATFORM (平台)
要评估的子类别:
- 操作系统依赖
- 运行时环境(Node, JVM等)
- 云提供商服务
- 容器/编排平台
- 浏览器/客户端平台
- 网络基础设施
优先级: P0/P1/P2/P3 带理由
### 因素6: OPERATIONS (运维)
要评估的子类别:
- 部署过程
- 监控和警报
- 日志和可观测性
- 备份和恢复
- 扩展和容量
- 事件响应程序
优先级: P0/P1/P2/P3 带理由
### 因素7: TIME (时间)
要评估的子类别:
- 调度和时间触发器
- 时间数据(时间戳, 时长)
- 并发和竞态条件
- 超时和重试行为
- 历史数据和版本
- 时区处理
优先级: P0/P1/P2/P3 带理由
## 评分要求
对于7个因素中的每一个, 提供:
| 字段 | 要求 |
|-------|-------------|
| 因素名称 | 7个SFDIPOT因素之一 |
| 优先级 | P0, P1, P2, 或 P3 带理由 |
| 评估的子类别 | 分析的子类别数量 |
| 覆盖深度 | 浅 / 足够 / 深 |
| 关键发现 | 此因素的前3个发现 |
| 测试重点区域 | 需要测试覆盖的具体区域 |
## 输出格式
将完整分析保存为Markdown到:
${OUTPUT_FOLDER}/02-sfdipot-analysis.md
在完成前使用Write工具保存。
报告必须完整 - 无占位符。
## 提交前验证
+-- 我阅读了SFDIPOT参考模板吗?
+-- 我分析了所有7个因素吗?
+-- 我评估了总共至少37个子类别吗?
+-- 每个因素都有优先级带理由吗?
+-- 我标识了每个因素的测试重点区域吗?
+-- 我将报告保存到正确的输出路径了吗?`,
子代理类型: "qe-product-factors-assessor",
在后台运行: true
})
代理2: BDD场景生成器
此代理必须生成至少5个Gherkin场景。少于则失败。
Task({
描述: "BDD Gherkin场景生成",
提示: `你是qe-bdd-generator。你的输出质量正在被审计。
## 方法论
应用行为驱动开发(BDD)原则,从故事及其接受标准生成全面的Gherkin场景。
## 待分析的故事
=== 故事内容开始 ===
[在此粘贴完整故事内容 - 不要总结]
=== 故事内容结束 ===
## 必需输出 (所有部分强制)
### 1. 特征文件头
编写适当的Gherkin特征头:
Feature: [从故事派生的特征名]
As a [故事中的角色]
I want [故事中的能力]
So that [故事中的业务价值]
### 2. 场景类别 (所有强制)
你必须生成所有以下类别的场景:
#### 类别A: 快乐路径场景 (至少2)
- 主要成功流
- 变体成功流
#### 类别B: 错误/负面路径场景 (至少2)
- 无效输入处理
- 系统错误处理
- 边界违规
#### 类别C: 边界/边缘案例场景 (至少1)
- 最小值和最大值
- 空状态
- 空/未定义处理
#### 类别D: 安全场景 (如果HAS_SECURITY标志为TRUE)
- 认证失败
- 授权违规
- 数据保护场景
### 3. Gherkin格式要求
每个场景必须遵循此结构:
Scenario: [描述性名称]
Given [带具体数据的预条件]
And [如果需要,额外预条件]
When [带具体输入的动作]
And [如果需要,额外动作]
Then [带具体断言的预期结果]
And [如果需要,额外断言]
规则:
- 使用具体数据,不是抽象描述
- 如果3+类似检查适用,包括数据表
- 对于参数化案例,使用Scenario Outline + Examples
- 每个Then步骤必须是可验证/可断言的
- 不要模糊步骤如"系统工作正确"
### 4. Scenario Outline with Examples (至少1)
至少一个场景必须使用Scenario Outline:
Scenario Outline: [参数化场景名]
Given [带<parameter>的预条件]
When [带<input>的动作]
Then [预期<outcome>]
Examples:
| parameter | input | outcome |
| value1 | val1 | result1 |
| value2 | val2 | result2 |
| value3 | val3 | result3 |
### 5. 可追溯性矩阵
将每个场景映射回接受标准:
| 场景 | 接受标准 | 类别 |
|----------|---------------------|----------|
| 场景1 | AC-1 | 快乐路径 |
| 场景2 | AC-1, AC-3 | 错误路径 |
| ... | ... | ... |
### 6. 总结指标
| 指标 | 值 |
|--------|-------|
| 总场景 | __ |
| 快乐路径 | __ |
| 错误路径 | __ |
| 边界 | __ |
| 安全 | __ |
| 场景概述 | __ |
| 总示例 | __ |
| AC覆盖 | __% |
**最少: 5个总场景。目标: 10+场景。**
## 输出格式
将完整分析保存为Markdown(嵌入Gherkin)到:
${OUTPUT_FOLDER}/03-bdd-scenarios.md
在完成前使用Write工具保存。
报告必须完整 - 无占位符。
## 提交前验证
+-- 我生成了至少5个场景吗?
+-- 我覆盖了快乐路径、错误路径和边界类别吗?
+-- 每个场景都有具体数据(不是抽象)吗?
+-- 我包括了至少一个Scenario Outline with Examples吗?
+-- 我将场景映射回接受标准了吗?
+-- 我计算了AC覆盖百分比了吗?
+-- 我将报告保存到正确的输出路径了吗?`,
子代理类型: "qe-bdd-generator",
在后台运行: true
})
代理3: 需求验证器 (INVEST)
此代理必须提供INVEST完整性分数0-100。无范围。
Task({
描述: "INVEST需求验证和可测试性评分",
提示: `你是qe-requirements-validator。你的输出质量正在被审计。
## 方法论
应用INVEST验证和可测试性评分原则。
## 待验证的故事和接受标准
=== 故事内容开始 ===
[在此粘贴完整故事 + 接受标准 - 不要总结]
=== 故事内容结束 ===
## 必需输出 (所有部分强制)
### 1. INVEST验证 (强制 - 所有六个标准)
评分每个INVEST标准0-100:
| 标准 | 分数 | 证据 | 问题 |
|-----------|-------|----------|--------|
| **I**ndependent (独立) | X/100 | 这个故事可以独立于其他故事开发和测试吗? | [发现问题] |
| **N**egotiable (可协商) | X/100 | 故事表达为意图(不是实现细节)吗? | [发现问题] |
| **V**aluable (有价值) | X/100 | 它向用户或业务交付清晰价值吗? | [发现问题] |
| **E**stimable (可估计) | X/100 | 团队可以自信估计工作量吗? | [发现问题] |
| **S**mall (小) | X/100 | 它可以在单个冲刺中完成吗? | [发现问题] |
| **T**estable (可测试) | X/100 | 有清晰、可验证的接受标准吗? | [发现问题] |
**INVEST完整性分数: XX/100** (所有六个标准的平均)
### 2. 接受标准评估
对于每个接受标准:
| AC ID | 文本 | 可测试? | 问题 | 建议重写 |
|-------|------|-----------|--------|-------------------|
| AC-1 | [原始文本] | Yes/No | [问题] | [如果需要,改进版本] |
| AC-2 | ... | ... | ... | ... |
对于不可测试的AC, 解释为什么并提供可测试重写。
### 3. 差距分析 (强制)
标识故事中的所有差距:
#### 缺失需求
- [差距1: 描述缺失的内容]
- [差距2: ...]
#### 模糊语言
- [模糊性1: 引用模糊文本并解释]
- [模糊性2: ...]
#### 缺失边缘案例
- [边缘案例1: 当前AC未覆盖的场景]
- [边缘案例2: ...]
#### 缺失非功能需求
- 性能: [指定了? 缺失?]
- 安全: [指定了? 缺失?]
- 可访问性: [指定了? 缺失?]
- 错误处理: [指定了? 缺失?]
**关键差距计数: __** (阻碍冲刺就绪的差距)
**最少: 标识至少3个差距或明确声明"在所有需求维度彻底分析后未发现差距"**
### 4. 就绪定义(DoR)检查表
| DoR项目 | 状态 | 备注 |
|----------|--------|-------|
| 故事有清晰标题和描述 | Pass/Fail | ... |
| 接受标准已定义 | Pass/Fail | ... |
| AC是可测试的 | Pass/Fail | ... |
| 依赖已标识 | Pass/Fail | ... |
| 故事已估计 | Pass/Fail | ... |
| 故事适合冲刺 | Pass/Fail | ... |
| UX设计可用(如果需要) | Pass/Fail/N/A | ... |
| API合同已定义(如果需要) | Pass/Fail/N/A | ... |
| 测试数据需求已知 | Pass/Fail | ... |
| 无阻碍标识 | Pass/Fail | ... |
**DoR通过率: X/10 (或如果排除N/A项, X/N)**
### 5. 建议
具体、可操作的建议,使此故事冲刺就绪:
| 优先级 | 建议 | 负责人 |
|----------|---------------|-------|
| P0 - 阻碍 | [冲刺前必须修复] | [谁] |
| P1 - 重要 | [冲刺前应该修复] | [谁] |
| P2 - 最好有 | [冲刺期间可以精炼] | [谁] |
## 输出格式
将完整分析保存为Markdown到:
${OUTPUT_FOLDER}/04-requirements-validation.md
在完成前使用Write工具保存。
报告必须完整 - 无占位符。
## 提交前验证
+-- 我评分了所有6个INVEST标准吗?
+-- 我计算了单个INVEST完整性分数(不是范围)吗?
+-- 我评估了每个AC的可测试性吗?
+-- 我为不可测试AC提供了重写吗?
+-- 我标识了差距(或明确确认无)吗?
+-- 我计数了关键差距吗?
+-- 我完成了DoR检查表吗?
+-- 我将报告保存到正确的输出路径了吗?`,
子代理类型: "qe-requirements-validator",
在后台运行: true
})
替代: MCP工具执行
如果使用MCP而不是任务工具:
// 选项1: 通过Fleet编排
mcp__agentic-qe__fleet_init({
topology: "hierarchical",
enabledDomains: ["requirements-validation", "test-generation"],
maxAgents: 7,
lazyLoading: true
})
// 提交任务到特定领域
mcp__agentic-qe__task_submit({
type: "product-factors-assessment",
priority: "p0",
payload: {
storyContent: storyContent,
framework: "sfdipot",
factorCount: 7
}
})
mcp__agentic-qe__task_submit({
type: "bdd-scenario-generation",
priority: "p0",
payload: {
storyContent: storyContent,
format: "gherkin",
minScenarios: 5
}
})
mcp__agentic-qe__task_submit({
type: "requirements-validation",
priority: "p0",
payload: {
storyContent: storyContent,
validateInvest: true,
assessDoR: true
}
})
// 检查任务状态
mcp__agentic-qe__task_list({ status: "pending" })
替代: CLI执行
如果使用CLI而不是任务工具:
# 为精炼初始化群集
npx @claude-flow/cli@latest swarm init \
--topology hierarchical \
--max-agents 7 \
--strategy specialized
# 任务前的路由钩子
npx @claude-flow/cli@latest hooks pre-task \
--description "QCSD精炼: SFDIPOT, BDD场景, INVEST验证"
# 启动代理(在单独终端或后台运行)
npx @claude-flow/cli@latest agent spawn \
--type qe-product-factors-assessor \
--task "故事SFDIPOT 7因素分析" &
npx @claude-flow/cli@latest agent spawn \
--type qe-bdd-generator \
--task "Gherkin BDD场景生成" &
npx @claude-flow/cli@latest agent spawn \
--type qe-requirements-validator \
--task "INVEST验证和DoR评估" &
# 等待完成
wait
# 检查群集状态
npx @claude-flow/cli@latest swarm status
启动后确认
发送所有三个任务调用后,你必须告诉用户:
我已在并行中启动3个核心代理:
qe-product-factors-assessor [领域: requirements-validation]
- 分析所有7个SFDIPOT因素 (37个子类别)
- 为每个因素分配P0-P3优先级
- 标识测试重点区域
qe-bdd-generator [领域: requirements-validation]
- 生成Gherkin场景 (快乐, 错误, 边界, 安全)
- 创建Scenario Outlines with Examples表格
- 映射场景到接受标准
qe-requirements-validator [领域: requirements-validation]
- 评分INVEST标准 (6个维度)
- 评估AC可测试性带重写
- 运行就绪定义检查表
等待所有代理完成再继续...
在发送此确认之前,不要继续到阶段3。
阶段3: 等待批次1完成
强制: 不要提前继续
+-------------------------------------------------------------+
| 你必须等待所有三个后台任务完成 |
| |
| 不要总结代理"会"发现什么 |
| 不要提前继续到阶段4 |
| 不要提供你自己的分析作为替代 |
| |
| 等待实际代理结果 |
| 只有当所有三个都返回时才继续 |
+-------------------------------------------------------------+
结果提取检查表
当结果返回时,提取并记录:
来自qe-product-factors-assessor:
[ ] sfdipotCoverage = __/7 因素分析
[ ] p0Count = __ P0优先级因素
[ ] subcategoriesAssessed = __/37 子类别
[ ] testFocusAreas = __ 区域标识
来自qe-bdd-generator:
[ ] bddScenarioCount = __ 场景生成
[ ] happyPathCount = __ 快乐路径场景
[ ] errorPathCount = __ 错误路径场景
[ ] boundaryCount = __ 边界场景
[ ] acCoverage = __% 接受标准覆盖
来自qe-requirements-validator:
[ ] investCompleteness = __% (6个INVEST标准平均)
[ ] criticalGaps = __ 关键差距标识
[ ] dorPassRate = __/10 就绪定义项目通过
[ ] untestableACs = __ 接受标准需要重写
指标总结框
输出提取的指标:
+-------------------------------------------------------------+
| 批次1结果总结 |
+-------------------------------------------------------------+
| |
| SFDIPOT覆盖: __/7 因素 |
| P0因素: __ |
| 评估的子类别: __/37 |
| |
| BDD场景: __ 总 |
| - 快乐路径: __ |
| - 错误路径: __ |
| - 边界: __ |
| AC覆盖: __% |
| |
| INVEST完整性: __% |
| 关键差距: __ |
| DoR通过率: __/10 |
| 不可测试AC: __ |
| |
+-------------------------------------------------------------+
在填充所有字段之前,不要继续到阶段4。
阶段4: 启动条件代理 (并行批次2)
强制: 不要跳过条件代理
+-------------------------------------------------------------+
| 如果标志为TRUE, 你必须启动那个代理 |
| |
| HAS_API = TRUE -> 必须启动 qe-contract-validator |
| HAS_REFACTORING = TRUE -> 必须启动 qe-impact-analyzer |
| HAS_DEPENDENCIES = TRUE -> 必须启动 qe-dependency-mapper |
| HAS_MIDDLEWARE = TRUE -> 必须启动 qe-middleware-validator |
| HAS_SAP_INTEGRATION = TRUE -> 必须启动 qe-odata-contract-tester|
| HAS_AUTHORIZATION = TRUE -> 必须启动 qe-sod-analyzer |
| |
| 跳过已标志的代理是此技能失败。 |
+-------------------------------------------------------------+
条件领域映射
| 标志 | 代理 | 领域 | MCP工具 |
|---|---|---|---|
| HAS_API | qe-contract-validator | contract-testing | contract_test |
| HAS_REFACTORING | qe-impact-analyzer | code-intelligence | coverage_analyze_sublinear |
| HAS_DEPENDENCIES | qe-dependency-mapper | code-intelligence | defect_predict |
| HAS_MIDDLEWARE | qe-middleware-validator | enterprise-integration | task_orchestrate |
| HAS_SAP_INTEGRATION | qe-odata-contract-tester | enterprise-integration | task_orchestrate |
| HAS_AUTHORIZATION | qe-sod-analyzer | enterprise-integration | task_orchestrate |
决策树
IF HAS_API == FALSE AND HAS_REFACTORING == FALSE AND HAS_DEPENDENCIES == FALSE AND HAS_MIDDLEWARE == FALSE AND HAS_SAP_INTEGRATION == FALSE AND HAS_AUTHORIZATION == FALSE:
-> 跳到阶段5 (不需要条件代理)
-> 状态: "基于故事分析不需要条件代理"
ELSE:
-> 在一个消息中启动所有适用代理
-> 计数你正在启动多少个: __
如果HAS_API: 合同验证器 (强制当标志时)
Task({
描述: "消费者驱动合同验证",
提示: `你是qe-contract-validator。你的输出质量正在被审计。
## 故事内容
=== 故事内容开始 ===
[在此粘贴完整故事内容]
=== 故事内容结束 ===
## 必需分析 (所有部分强制)
### 1. API合同清单
列出每个提到或暗示的API交互:
| 端点 | 方法 | 消费者 | 提供者 | 合同定义? |
|----------|--------|----------|----------|--------------------|
| ... | GET/POST等 | [谁调用] | [谁服务] | Yes/No |
### 2. 消费者驱动合同评估
对于每个API合同:
| 合同 | 模式定义? | 破坏性改变风险 | 向后兼容? |
|----------|-----------------|---------------------|---------------------|
| ... | Yes/No/Partial | High/Medium/Low | Yes/No/Unknown |
### 3. 破坏性改变检测
分析故事中的潜在破坏性改变:
| 改变 | 类型 | 影响 | 受影响消费者 |
|--------|------|--------|-------------------|
| ... | 模式/行为/移除 | High/Medium/Low | [列表] |
### 4. 合同测试建议
| 测试类型 | 工具 | 优先级 | 场景 |
|-----------|------|----------|-----------|
| 消费者合同 | Pact/MSW | P0/P1/P2 | [场景] |
| 提供者验证 | Pact/Supertest | P0/P1/P2 | [场景] |
| 模式验证 | Ajv/Zod | P0/P1/P2 | [场景] |
### 5. 合同风险分数
| 维度 | 分数 (0-10) | 备注 |
|-----------|-------------|-------|
| 模式完整性 | X/10 | ... |
| 向后兼容性 | X/10 | ... |
| 消费者覆盖 | X/10 | ... |
| 版本策略 | X/10 | ... |
**合同风险分数: X/40**
**最少: 标识至少3个合同相关发现**
## 输出格式
保存到: ${OUTPUT_FOLDER}/05-contract-validation.md
在完成前使用Write工具保存。`,
子代理类型: "qe-contract-validator",
在后台运行: true
})
如果HAS_REFACTORING: 影响分析器 (强制当标志时)
Task({
描述: "重构爆炸半径和影响分析",
提示: `你是qe-impact-analyzer。你的输出质量正在被审计。
## 故事内容
=== 故事内容开始 ===
[在此粘贴完整故事内容]
=== 故事内容结束 ===
## 必需分析 (所有部分强制)
### 1. 爆炸半径评估
标识重构影响的所有组件:
| 组件 | 直接/间接 | 改变类型 | 风险等级 |
|-----------|----------------|-------------|------------|
| ... | 直接 | 修改/重命名/移动/删除 | High/Medium/Low |
### 2. 受影响测试清单
| 测试文件/套件 | 状态 | 需要动作 |
|-----------------|--------|-----------------|
| ... | 会坏 / 可能坏 / 安全 | 更新 / 重写 / 无 |
### 3. 依赖链分析
映射受影响组件的依赖链:
[改变组件] ±- [直接依赖1] | ±- [传递依赖1a] | ±- [传递依赖1b] ±- [直接依赖2] ±- [传递依赖2a]
### 4. 回归风险矩阵
| 区域 | 改变概率 | 测试覆盖 | 回归风险 |
|------|-------------------|---------------|-----------------|
| ... | High/Medium/Low | Good/Partial/None | Critical/High/Medium/Low |
### 5. 迁移策略
| 阶段 | 动作 | 回滚计划 | 验证 |
|-------|--------|---------------|-------------|
| 1 | ... | ... | [如何验证] |
| 2 | ... | ... | [如何验证] |
### 6. 影响分数
| 维度 | 分数 (0-10) | 备注 |
|-----------|-------------|-------|
| 爆炸半径 | X/10 | 受影响组件数 |
| 测试影响 | X/10 | 需要更新的测试 |
| 回滚复杂性 | X/10 | 回滚难度 |
| 数据迁移风险 | X/10 | 需要数据转换 |
**影响分数: X/40**
**最少: 映射至少5个受影响组件或解释为什么更少存在**
## 输出格式
保存到: ${OUTPUT_FOLDER}/06-impact-analysis.md
在完成前使用Write工具保存。`,
子代理类型: "qe-impact-analyzer",
在后台运行: true
})
如果HAS_DEPENDENCIES: 依赖映射器 (强制当标志时)
Task({
描述: "依赖耦合分析和循环检测",
提示: `你是qe-dependency-mapper。你的输出质量正在被审计。
## 故事内容
=== 故事内容开始 ===
[在此粘贴完整故事内容]
=== 故事内容结束 ===
## 必需分析 (所有部分强制)
### 1. 依赖清单
列出所有提到或暗示的依赖(直接和传递):
| 依赖 | 类型 | 版本 | 状态 | 风险 |
|------------|------|---------|--------|------|
| ... | 直接/传递 | X.Y.Z | 当前/过时/弃用 | High/Medium/Low |
### 2. 耦合指标
计算Robert C. Martin的包耦合指标:
| 模块 | Ca (传入) | Ce (传出) | I (不稳定性) | 类别 |
|--------|---------------|---------------|-----------------|----------|
| ... | [传入依赖] | [传出依赖] | Ce/(Ca+Ce) | 稳定/灵活/不稳定 |
其中:
- Ca = 依赖于此的外部类数
- Ce = 依赖外部的内容类数
- I = Ce / (Ca + Ce), 范围 [0,1]: 0=最大稳定, 1=最大不稳定
### 3. 循环依赖检测
| 循环 | 涉及组件 | 严重性 | 解决方案 |
|-------|--------------------|----------|------------|
| 循环1 | A -> B -> C -> A | Critical/Warning | [如何打破] |
如果无循环: "未检测到循环依赖"
### 4. 跨团队依赖
| 依赖 | 拥有团队 | 沟通渠道 | SLA | 风险 |
|------------|-------------|----------------------|-----|------|
| ... | [团队名] | [Slack/Jira等] | [响应时间] | High/Medium/Low |
### 5. 依赖健康仪表板
| 健康指标 | 状态 | 详情 |
|-----------------|--------|---------|
| 过时依赖 | X of Y | [列表] |
| 已知漏洞 | X CVEs | [列表] |
| 许可证合规 | Pass/Fail | [问题] |
| 包大小影响 | +X KB | [分解] |
### 6. 耦合分数
| 维度 | 分数 (0-10) | 备注 |
|-----------|-------------|-------|
| 传入耦合 | X/10 | 扇入复杂性 |
| 传出耦合 | X/10 | 扇出复杂性 |
| 循环依赖 | X/10 | 循环严重性 |
| 跨团队耦合 | X/10 | 外部团队风险 |
**耦合分数: X/40**
**最少: 映射至少5个依赖或解释为什么更少存在**
## 输出格式
保存到: ${OUTPUT_FOLDER}/07-dependency-map.md
在完成前使用Write工具保存。`,
子代理类型: "qe-dependency-mapper",
在后台运行: true
})
如果HAS_MIDDLEWARE: 中间件验证器 (强制当标志时)
Task({
描述: "中间件路由、转换和ESB流验证",
提示: `你是qe-middleware-validator。你的输出质量正在被审计。
## 故事内容
=== 故事内容开始 ===
[在此粘贴完整故事内容]
=== 故事内容结束 ===
## 必需分析 (所有部分强制)
### 1. 中间件拓扑清单
映射所有提到或暗示的中间件组件:
| 组件 | 类型 | 协议 | 方向 | SLA |
|-----------|------|----------|-----------|-----|
| ... | ESB/MQ/网关/代理 | AMQP/MQTT/HTTP/gRPC | 入站/出站/双向 | [延迟/吞吐量] |
### 2. 消息流分析
对于每个消息流:
| 流 | 源 | 中间件 | 目标 | 转换? | 错误处理 |
|------|--------|-----------|--------|------------|----------------|
| ... | [生产者] | [代理/ESB] | [消费者] | Yes/No | DLQ/重试/丢弃 |
### 3. 转换验证
| 转换 | 输入格式 | 输出格式 | 验证规则 | 风险 |
|-----------|-------------|---------------|-----------------|------|
| ... | JSON/XML/CSV | JSON/XML/CSV | [模式规则] | High/Medium/Low |
### 4. 中间件测试建议
| 测试类型 | 工具 | 优先级 | 场景 |
|-----------|------|----------|-----------|
| 消息路由 | WireMock/Testcontainers | P0/P1/P2 | [场景] |
| 转换准确度 | 模式验证器 | P0/P1/P2 | [场景] |
| 死信队列 | DLQ监视器 | P0/P1/P2 | [场景] |
| 吞吐量 | 负载生成器 | P0/P1/P2 | [场景] |
### 5. 中间件风险分数
| 维度 | 分数 (0-10) | 备注 |
|-----------|-------------|-------|
| 路由复杂性 | X/10 | ... |
| 转换准确度 | X/10 | ... |
| 错误处理覆盖 | X/10 | ... |
| 吞吐量风险 | X/10 | ... |
**中间件风险分数: X/40**
**最少: 标识至少3个中间件相关发现**
## 输出格式
保存到: ${OUTPUT_FOLDER}/10-middleware-validation.md
在完成前使用Write工具保存。`,
子代理类型: "qe-middleware-validator",
在后台运行: true
})
如果HAS_SAP_INTEGRATION: OData合同测试器 (强制当标志时)
Task({
描述: "OData合同和SAP服务验证",
提示: `你是qe-odata-contract-tester。你的输出质量正在被审计。
## 故事内容
=== 故事内容开始 ===
[在此粘贴完整故事内容]
=== 故事内容结束 ===
## 必需分析 (所有部分强制)
### 1. SAP服务清单
映射所有提到或暗示的SAP服务和OData端点:
| 服务 | 类型 | 协议 | 实体集 | 操作 |
|---------|------|----------|-----------|------------|
| ... | OData V2/V4/RFC/BAPI | HTTP/RFC | [实体] | CRUD/自定义 |
### 2. OData合同评估
对于每个OData服务:
| 端点 | $metadata 可用? | 模式已验证? | 破坏性改变风险 | 分页 |
|----------|---------------------|------------------|---------------------|------------|
| ... | Yes/No | Yes/No/Partial | High/Medium/Low | 服务器/客户端/无 |
### 3. SAP集成点
| 集成 | 源系统 | 目标系统 | IDoc类型 | 方向 |
|-------------|-------------|---------------|-----------|-----------|
| ... | ECC/S4/EWM | [目标] | [类型] | 入站/出站 |
### 4. 合同测试建议
| 测试类型 | 工具 | 优先级 | 场景 |
|-----------|------|----------|-----------|
| OData $metadata | OData验证器 | P0/P1/P2 | [场景] |
| 实体CRUD | SAP网关测试 | P0/P1/P2 | [场景] |
| 深层实体 | 集成套件 | P0/P1/P2 | [场景] |
| 错误响应 | 负面测试 | P0/P1/P2 | [场景] |
### 5. SAP集成风险分数
| 维度 | 分数 (0-10) | 备注 |
|-----------|-------------|-------|
| 合同完整性 | X/10 | ... |
| 模式稳定性 | X/10 | ... |
| 错误处理 | X/10 | ... |
| 授权覆盖 | X/10 | ... |
**SAP集成风险分数: X/40**
**最少: 标识至少3个SAP集成发现**
## 输出格式
保存到: ${OUTPUT_FOLDER}/11-odata-contract-validation.md
在完成前使用Write工具保存。`,
子代理类型: "qe-odata-contract-tester",
在后台运行: true
})
如果HAS_AUTHORIZATION: SoD分析器 (强制当标志时)
Task({
描述: "职责分离和授权冲突分析",
提示: `你是qe-sod-analyzer。你的输出质量正在被审计。
## 故事内容
=== 故事内容开始 ===
[在此粘贴完整故事内容]
=== 故事内容结束 ===
## 必需分析 (所有部分强制)
### 1. 授权对象清单
映射所有提到或暗示的授权对象、角色和T-codes:
| 授权对象 | 字段 | 值 | 角色分配 | 风险等级 |
|-------------|-------|--------|----------------|------------|
| ... | [字段] | [允许值] | [角色] | Critical/High/Medium/Low |
### 2. 职责分离矩阵
| 功能A | 功能B | 冲突类型 | 风险 | 缓解 |
|-----------|-----------|---------------|------|------------|
| [创建PO] | [批准PO] | SoD违规 | Critical | [控制] |
| ... | ... | ... | ... | ... |
### 3. 角色冲突检测
| 角色 | 冲突角色 | 共享用户 | 违规类型 | GRC状态 |
|------|-----------------|-------------|----------------|------------|
| ... | ... | [计数] | SoD/过度/有毒 | 检测/缓解/开放 |
### 4. 授权测试建议
| 测试类型 | 工具 | 优先级 | 场景 |
|-----------|------|----------|-----------|
| SoD模拟 | GRC访问风险 | P0/P1/P2 | [场景] |
| 角色测试 | SU53/SUIM | P0/P1/P2 | [场景] |
| 负面授权 | 授权跟踪 | P0/P1/P2 | [场景] |
| 特权提升 | 渗透测试套件 | P0/P1/P2 | [场景] |
### 5. 授权风险分数
| 维度 | 分数 (0-10) | 备注 |
|-----------|-------------|-------|
| SoD合规 | X/10 | ... |
| 角色设计质量 | X/10 | ... |
| 有毒组合风险 | X/10 | ... |
| 审计跟踪覆盖 | X/10 | ... |
**授权风险分数: X/40**
**最少: 标识至少3个授权发现**
## 输出格式
保存到: ${OUTPUT_FOLDER}/12-sod-analysis.md
在完成前使用Write工具保存。`,
子代理类型: "qe-sod-analyzer",
在后台运行: true
})
替代: MCP工具用于条件代理
// 如果HAS_API - 启用contract-testing领域
if (HAS_API) {
mcp__agentic-qe__task_submit({
type: "contract-validation",
priority: "p0",
payload: {
storyContent: storyContent,
framework: "consumer-driven",
detectBreaking: true
}
})
}
// 如果HAS_REFACTORING - 启用code-intelligence领域
if (HAS_REFACTORING) {
mcp__agentic-qe__coverage_analyze_sublinear({
target: "src/",
detectGaps: true,
blastRadius: true
})
}
// 如果HAS_DEPENDENCIES - 启用code-intelligence领域
if (HAS_DEPENDENCIES) {
mcp__agentic-qe__defect_predict({
target: "src/",
analyzeCoupling: true,
detectCircular: true
})
}
// 如果HAS_MIDDLEWARE - 启用enterprise-integration领域
if (HAS_MIDDLEWARE) {
mcp__agentic_qe__task_orchestrate({
task: "middleware-routing-validation",
strategy: "parallel",
payload: {
storyContent: storyContent,
validateRouting: true,
validateTransforms: true
}
})
}
// 如果HAS_SAP_INTEGRATION - 启用enterprise-integration领域
if (HAS_SAP_INTEGRATION) {
mcp__agentic_qe__task_orchestrate({
task: "odata-contract-validation",
strategy: "parallel",
payload: {
storyContent: storyContent,
validateMetadata: true,
validateSchema: true
}
})
}
// 如果HAS_AUTHORIZATION - 启用enterprise-integration领域
if (HAS_AUTHORIZATION) {
mcp__agentic_qe__task_orchestrate({
task: "sod-authorization-analysis",
strategy: "parallel",
payload: {
storyContent: storyContent,
detectSoD: true,
detectToxicCombos: true
}
})
}
替代: CLI用于条件代理
# 如果HAS_API
if [ "$HAS_API" = "TRUE" ]; then
npx @claude-flow/cli@latest agent spawn \
--type qe-contract-validator \
--task "消费者驱动合同验证" &
fi
# 如果HAS_REFACTORING
if [ "$HAS_REFACTORING" = "TRUE" ]; then
npx @claude-flow/cli@latest agent spawn \
--type qe-impact-analyzer \
--task "重构爆炸半径分析" &
fi
# 如果HAS_DEPENDENCIES
if [ "$HAS_DEPENDENCIES" = "TRUE" ]; then
npx @claude-flow/cli@latest agent spawn \
--type qe-dependency-mapper \
--task "耦合指标和循环检测" &
fi
# 如果HAS_MIDDLEWARE
if [ "$HAS_MIDDLEWARE" = "TRUE" ]; then
npx @claude-flow/cli@latest agent spawn \
--type qe-middleware-validator \
--task "中间件路由和ESB流验证" &
fi
# 如果HAS_SAP_INTEGRATION
if [ "$HAS_SAP_INTEGRATION" = "TRUE" ]; then
npx @claude-flow/cli@latest agent spawn \
--type qe-odata-contract-tester \
--task "OData合同和SAP服务验证" &
fi
# 如果HAS_AUTHORIZATION
if [ "$HAS_AUTHORIZATION" = "TRUE" ]; then
npx @claude-flow/cli@latest agent spawn \
--type qe-sod-analyzer \
--task "职责分离分析" &
fi
# 等待条件代理
wait
代理计数验证
在继续前,验证代理计数:
+-------------------------------------------------------------+
| 代理计数验证 |
+-------------------------------------------------------------+
| |
| 核心代理 (总是3): |
| [ ] qe-product-factors-assessor - 已启动? [Y/N] |
| [ ] qe-bdd-generator - 已启动? [Y/N] |
| [ ] qe-requirements-validator - 已启动? [Y/N] |
| |
| 条件代理 (基于标志): |
| [ ] qe-contract-validator - 已启动? [Y/N] (HAS_API) |
| [ ] qe-impact-analyzer - 已启动? [Y/N] (HAS_REFACTORING)|
| [ ] qe-dependency-mapper - 已启动? [Y/N] (HAS_DEPS) |
| [ ] qe-middleware-validator - 已启动? [Y/N] (HAS_MIDDLEWARE) |
| [ ] qe-odata-contract-tester - 已启动? [Y/N] (HAS_SAP_INTEG) |
| [ ] qe-sod-analyzer - 已启动? [Y/N] (HAS_AUTHORIZATION) |
| |
| 验证: |
| 预期代理: [3 + TRUE标志计数] |
| 实际启动: [计数] |
| 状态: [PASS/FAIL] |
| |
| 如果实际 < 预期, 你已失败。在继续前启动缺失代理。 |
| |
+-------------------------------------------------------------+
如果验证失败,不要继续。
启动后确认 (如果适用)
我已在并行中启动 [N] 个条件代理:
[如果HAS_API] qe-contract-validator [领域: contract-testing]
- 消费者驱动合同, 破坏性改变
[如果HAS_REFACTORING] qe-impact-analyzer [领域: code-intelligence]
- 爆炸半径, 受影响测试, 回归风险
[如果HAS_DEPENDENCIES] qe-dependency-mapper [领域: code-intelligence]
- 耦合指标 Ca/Ce/I, 循环检测
[如果HAS_MIDDLEWARE] qe-middleware-validator [领域: enterprise-integration]
- 中间件路由, 转换, ESB流验证
[如果HAS_SAP_INTEGRATION] qe-odata-contract-tester [领域: enterprise-integration]
- OData合同, SAP服务, $metadata验证
[如果HAS_AUTHORIZATION] qe-sod-analyzer [领域: enterprise-integration]
- 职责分离, 角色冲突, 授权分析
等待条件代理完成...
阶段5: 综合结果和确定推荐
强制: 精确决策逻辑
你必须准确应用此逻辑。没有解释。
步骤1: 检查NOT-READY条件 (任何触发NOT-READY)
-----------------------------------------------------------
IF sfdipotCoverage < 5 -> NOT-READY ("因素覆盖不足")
IF bddScenarioCount < 3 -> NOT-READY ("BDD场景太少")
IF investCompleteness < 50 -> NOT-READY ("需求不完整")
IF criticalGaps > 3 -> NOT-READY ("关键差距太多")
步骤2: 检查READY条件 (所有必需用于READY)
-----------------------------------------------------------
IF sfdipotCoverage >= 7
AND bddScenarioCount >= 10
AND investCompleteness >= 90
AND criticalGaps == 0 -> READY
步骤3: 默认
-----------------------------------------------------------
ELSE -> CONDITIONAL
决策记录
指标:
- sfdipotCoverage = __/7
- bddScenarioCount = __
- investCompleteness = __%
- criticalGaps = __
NOT-READY检查:
- sfdipotCoverage < 5? __ (YES/NO)
- bddScenarioCount < 3? __ (YES/NO)
- investCompleteness < 50? __ (YES/NO)
- criticalGaps > 3? __ (YES/NO)
READY检查 (只有当无NOT-READY触发时):
- sfdipotCoverage >= 7? __ (YES/NO)
- bddScenarioCount >= 10? __ (YES/NO)
- investCompleteness >= 90? __ (YES/NO)
- criticalGaps == 0? __ (YES/NO)
最终推荐: [READY / CONDITIONAL / NOT-READY]
理由: ___
条件推荐
如果推荐是CONDITIONAL, 提供具体阻碍:
| 阻碍 | 当前值 | 要求值 | 负责人 | 动作 |
|---|---|---|---|---|
| … | … | … | [谁] | [做什么] |
如果推荐是NOT-READY, 提供强制补救:
| 补救 | 优先级 | 工作量 | 截止日期 |
|---|---|---|---|
| … | P0 | [小时/天] | [下次精炼前] |
阶段6: 生成精炼报告
强制: 完整报告结构
以下所有部分都是强制性的。无缩写。
# QCSD精炼报告: [故事名]
**生成**: [日期/时间]
**推荐**: [READY / CONDITIONAL / NOT-READY]
**执行代理**: [列出所有运行的代理]
**并行批次**: [2或3取决于条件代理]
---
## 执行摘要
| 指标 | 值 | 阈值 | 状态 |
|--------|-------|-----------|--------|
| SFDIPOT覆盖 | X/7 | >=7 | PASS/WARN/FAIL |
| BDD场景 | X | >=10 | PASS/WARN/FAIL |
| INVEST完整性 | X% | >=90% | PASS/WARN/FAIL |
| 关键差距 | X | 0 | PASS/WARN/FAIL |
**推荐理由**: [1-2句解释为什么READY/CONDITIONAL/NOT-READY]
---
## SFDIPOT产品因素分析
[嵌入或链接来自qe-product-factors-assessor的完整报告]
### 因素优先级总结
| 因素 | 优先级 | 关键发现 | 测试重点 |
|--------|----------|-------------|------------|
| Structure | P0/P1/P2/P3 | [顶级发现] | [区域] |
| Function | P0/P1/P2/P3 | [顶级发现] | [区域] |
| Data | P0/P1/P2/P3 | [顶级发现] | [区域] |
| Interfaces | P0/P1/P2/P3 | [顶级发现] | [区域] |
| Platform | P0/P1/P2/P3 | [顶级发现] | [区域] |
| Operations | P0/P1/P2/P3 | [顶级发现] | [区域] |
| Time | P0/P1/P2/P3 | [顶级发现] | [区域] |
### 跨领域关注点
[列出跨越多个因素的任何关注点]
---
## BDD场景
[嵌入来自qe-bdd-generator的完整Gherkin]
### 场景覆盖总结
| 类别 | 计数 | AC覆盖 |
|----------|-------|-------------|
| 快乐路径 | X | [覆盖的AC] |
| 错误路径 | X | [覆盖的AC] |
| 边界 | X | [覆盖的AC] |
| 安全 | X | [覆盖的AC] |
| **总计** | **X** | **X%** |
---
## 需求验证
### INVEST分数: X/100
| 标准 | 分数 | 状态 |
|-----------|-------|--------|
| Independent | X/100 | PASS/WARN/FAIL |
| Negotiable | X/100 | PASS/WARN/FAIL |
| Valuable | X/100 | PASS/WARN/FAIL |
| Estimable | X/100 | PASS/WARN/FAIL |
| Small | X/100 | PASS/WARN/FAIL |
| Testable | X/100 | PASS/WARN/FAIL |
### AC评估
| AC | 可测试? | 问题 | 需要重写? |
|----|-----------|--------|-----------------|
[所有AC评估]
### 标识的差距
1. [差距1]
2. [差距2]
[来自qe-requirements-validator的所有差距]
### 就绪定义: X/10 通过
---
## 条件分析
[仅在适用时包括 - 基于哪些条件代理运行]
### 合同验证 (如果HAS_API)
[来自qe-contract-validator的完整输出]
### 影响分析 (如果HAS_REFACTORING)
[来自qe-impact-analyzer的完整输出]
### 依赖映射 (如果HAS_DEPENDENCIES)
[来自qe-dependency-mapper的完整输出]
---
## 推荐动作
### 冲刺承诺前
- [ ] [基于发现的动作]
- [ ] [基于发现的动作]
### 冲刺规划备注
- [ ] [测试方法推荐]
- [ ] [依赖协调需要]
### 冲刺期间
- [ ] [基于发现的动作]
---
## 附录: 代理输出
[链接或嵌入每个代理的完整输出]
---
*由QCSD精炼群集 v1.0生成*
*执行模型: 任务工具并行群集*
将执行摘要报告写入:
${OUTPUT_FOLDER}/01-executive-summary.md
报告验证检查表
呈现报告前:
+-- 执行摘要表完整, 包含所有4个指标
+-- 推荐匹配决策逻辑输出
+-- SFDIPOT部分包括所有7个因素优先级
+-- BDD部分包括场景覆盖总结
+-- INVEST分数显示所有6个标准
+-- 所有差距已列出
+-- 为所有启动代理包括条件部分
+-- 推荐动作具体(不通用)
+-- 报告保存到输出文件夹
不要呈现不完整报告。
阶段7: 存储学习和持久化状态
强制: 总是运行此阶段
+-------------------------------------------------------------+
| 学习持久化必须总是执行 |
| |
| 这不是可选的。它在每次精炼上运行。 |
| 它存储发现用于跨阶段反馈循环、 |
| 历史决策分析和模式学习。 |
| |
| 不要因为任何原因跳过此阶段。 |
| 不要将此视为"最好有"。 |
| 强制规则E9适用。 |
+-------------------------------------------------------------+
目的
存储精炼发现用于:
- 跨阶段反馈循环 (开发 -> 下一个精炼循环)
- READY/CONDITIONAL/NOT-READY决策的历史分析
- 跨故事的SFDIPOT模式学习
- BDD场景质量随时间改进
自动执行步骤 (所有三个强制)
步骤1: 存储精炼发现到内存
你必须执行此MCP调用, 带有来自精炼分析的实际值:
mcp__agentic-qe__memory_store({
key: `qcsd-refinement-${storyId}-${Date.now()}`,
namespace: "qcsd-refinement",
value: {
storyId: storyId,
storyName: storyName,
recommendation: recommendation, // READY, CONDITIONAL, NOT-READY
metrics: {
sfdipotCoverage: sfdipotCoverage,
bddScenarioCount: bddScenarioCount,
investCompleteness: investCompleteness,
criticalGaps: criticalGaps
},
sfdipotPriorities: {
structure: "P0/P1/P2/P3",
function: "P0/P1/P2/P3",
data: "P0/P1/P2/P3",
interfaces: "P0/P1/P2/P3",
platform: "P0/P1/P2/P3",
operations: "P0/P1/P2/P3",
time: "P0/P1/P2/P3"
},
flags: {
HAS_API: HAS_API,
HAS_REFACTORING: HAS_REFACTORING,
HAS_DEPENDENCIES: HAS_DEPENDENCIES,
HAS_SECURITY: HAS_SECURITY,
HAS_MIDDLEWARE: HAS_MIDDLEWARE,
HAS_SAP_INTEGRATION: HAS_SAP_INTEGRATION,
HAS_AUTHORIZATION: HAS_AUTHORIZATION
},
agentsInvoked: agentList,
timestamp: new Date().toISOString()
}
})
步骤2: 与学习协调器分享学习
你必须执行此MCP调用, 以跨领域传播模式:
mcp__agentic-qe__memory_share({
sourceAgentId: "qcsd-refinement-swarm",
targetAgentIds: ["qe-learning-coordinator", "qe-pattern-learner"],
knowledgeDomain: "refinement-patterns"
})
步骤3: 保存学习持久化记录到输出文件夹
你必须使用Write工具保存持久化学习的JSON记录:
保存到: ${OUTPUT_FOLDER}/09-learning-persistence.json
内容:
{
"phase": "QCSD-Refinement",
"storyId": "[故事ID]",
"storyName": "[故事名]",
"recommendation": "[READY/CONDITIONAL/NOT-READY]",
"memoryKey": "qcsd-refinement-[storyId]-[timestamp]",
"namespace": "qcsd-refinement",
"metrics": {
"sfdipotCoverage": [0-7],
"bddScenarioCount": [N],
"investCompleteness": [0-100],
"criticalGaps": [N],
"testIdeaQuality": [0-100]
},
"sfdipotPriorities": {
"structure": "P0/P1/P2/P3",
"function": "P0/P1/P2/P3",
"data": "P0/P1/P2/P3",
"interfaces": "P0/P1/P2/P3",
"platform": "P0/P1/P2/P3",
"operations": "P0/P1/P2/P3",
"time": "P0/P1/P2/P3"
},
"flags": {
"HAS_API": true/false,
"HAS_REFACTORING": true/false,
"HAS_DEPENDENCIES": true/false,
"HAS_SECURITY": true/false,
"HAS_MIDDLEWARE": true/false,
"HAS_SAP_INTEGRATION": true/false,
"HAS_AUTHORIZATION": true/false
},
"agentsInvoked": ["列表", "代理"],
"crossPhaseSignals": {
"toDevelopment": "BDD场景作为测试规格",
"toVerification": "INVEST差距作为验证重点"
},
"persistedAt": "[ISO时间戳]"
}
备选: CLI内存命令
如果MCP memory_store工具不可用, 使用CLI代替 (仍然强制):
npx @claude-flow/cli@latest memory store \
--key "qcsd-refinement-${STORY_ID}-$(date +%s)" \
--value '{"recommendation":"[VALUE]","investCompleteness":[N],"sfdipotCoverage":[N],"bddScenarioCount":[N],"criticalGaps":[N]}' \
--namespace qcsd-refinement
npx @claude-flow/cli@latest hooks post-task \
--task-id "qcsd-refinement-${STORY_ID}" \
--success true
继续到阶段8前的验证
+-- 我执行了mcp__agentic-qe__memory_store, 带有实际值吗? (不是占位符)
+-- 我执行了mcp__agentic-qe__memory_share以传播学习吗?
+-- 我将09-learning-persistence.json保存到输出文件夹了吗?
+-- JSON包含来自阶段5的正确推荐吗?
+-- JSON包含来自阶段2的实际SFDIPOT优先级吗?
+-- JSON包含来自阶段1的实际标志值吗?
如果任何验证检查失败, 不要继续到阶段8。
跨阶段信号消费
精炼群集既消费又产生信号, 用于其他QCSD阶段:
消费 (来自其他阶段):
+-- 循环2 (战术): 来自生产遥测的SFDIPOT权重
| - 生产事件通知哪些因素权重更高
| - 遥测数据调整P0-P3优先级阈值
|
+-- 循环4 (质量标准): 来自开发的不可测试模式
- 开发阶段标记为难以测试的模式
- 反馈到INVEST可测试性评分
产生 (用于其他阶段):
+-- 到开发阶段: BDD场景作为测试规格
| - Gherkin场景成为自动化测试模板
| - SFDIPOT优先级指导测试深度分配
|
+-- 到验证阶段: INVEST差距作为验证重点
- 关键差距成为验证检查点
- DoR失败成为冲刺退出标准
阶段8: 应用测试想法重写器 (转换)
强制: 总是运行此阶段
+-------------------------------------------------------------+
| 测试想法重写器必须总是运行 |
| |
| 这不是条件的。它在每次精炼上运行。 |
| 它将被动测试想法转换为主动、可操作的 |
| 使用强动作动词的测试规格。 |
| |
| 不要因为任何原因跳过此阶段。 |
+-------------------------------------------------------------+
转换规则
qe-test-idea-rewriter使用这些规则转换精炼分析中的所有测试想法:
| 模式 | 转换为 | 示例 |
|---|---|---|
| “验证 X” | “通过[具体动作]确认 X” | “验证登录有效” -> “通过提交有效凭证并观察会话令牌确认认证成功” |
| “检查 X” | “通过[具体动作]验证 X” | “检查错误显示” -> “通过提交空表单验证错误消息显示” |
| “测试 X” | “通过[具体动作]练习 X” | “测试分页” -> “通过导航通过5+页并验证项目计数练习分页” |
| “确保 X” | “通过[具体动作]演示 X” | “确保数据保存” -> “通过创建记录并检索它演示数据持久性” |
| 被动语态 | 主动语态 | “数据被验证” -> “针对模式约束验证数据” |
| 模糊断言 | 具体断言 | “工作正确” -> “返回HTTP 200带预期JSON负载” |
代理启动
Task({
描述: "用动作动词转换测试想法",
提示: `你是qe-test-idea-rewriter。你的输出质量正在被审计。
## 目的
转换此精炼会话中生成的所有测试想法, 从被动/模糊描述为主动、具体、可操作的测试规格。
## 输入: 原始测试想法
收集来自所有先前代理输出的测试想法:
### 来自SFDIPOT分析 (02-sfdipot-analysis.md):
[列出每个因素标识的所有测试重点区域]
### 来自BDD场景 (03-bdd-scenarios.md):
[列出所有场景名作为测试想法]
### 来自需求验证 (04-requirements-validation.md):
[列出所有差距驱动测试想法和建议]
### 来自条件代理 (如果适用):
[列出来自合同/影响/依赖分析的所有测试推荐]
## 转换规则 (应用于每个测试想法)
1. 用主动动词替换被动动词:
- "验证" -> "确认 ... 通过 [动作]"
- "检查" -> "验证 ... 通过 [动作]"
- "测试" -> "练习 ... 通过 [动作]"
- "确保" -> "演示 ... 通过 [动作]"
- "应该" -> "[动作动词] ... 到 [结果]"
2. 添加具体动作:
- 每个测试想法必须指定触发测试的什么动作
- 每个测试想法必须指定如何观察结果
- 无模糊短语: "工作正确", "功能正常", "按预期行为"
3. 添加预期结果:
- 每个测试想法必须有具体、可验证的断言
- 尽可能使用具体值 (HTTP代码, 计数, 字符串)
## 必需输出
### 重写测试想法表
| # | 原始测试想法 | 重写测试想法 | 源代理 | 优先级 |
|---|-------------------|---------------------|-------------|----------|
| 1 | [原始] | [带动作动词 + 具体断言重写] | [代理] | P0/P1/P2 |
| 2 | ... | ... | ... | ... |
### 转换指标
| 指标 | 值 |
|--------|-------|
| 处理的总测试想法 | __ |
| 需要重写的想法 | __ |
| 已可操作的想法 | __ |
| 新想法添加 (来自差距) | __ |
| P0测试想法 | __ |
| P1测试想法 | __ |
| P2测试想法 | __ |
### 测试想法质量分数
| 维度 | 之前 | 之后 |
|-----------|--------|-------|
| 动作动词使用 | __% | 100% |
| 具体断言 | __% | __% |
| 具体测试数据 | __% | __% |
| 可观察结果 | __% | __% |
**总体测试想法质量: __/100**
## 输出格式
保存到: ${OUTPUT_FOLDER}/08-rewritten-test-ideas.md
在完成前使用Write工具保存。
## 提交前验证
+-- 我处理了来自所有代理输出的所有测试想法吗?
+-- 每个重写想法使用主动动词吗?
+-- 每个重写想法有具体断言吗?
+-- 我计算了转换指标吗?
+-- 我将报告保存到正确的输出路径了吗?`,
子代理类型: "qe-test-idea-rewriter",
在后台运行: true
})
等待转换完成
+-------------------------------------------------------------+
| 在继续到阶段9前, 等待qe-test-idea-rewriter完成 |
| |
| 重写测试想法是精炼群集的主要交付物 - 它们直接馈入开发阶段作为测试规格。 |
+-------------------------------------------------------------+
阶段9: 最终输出
在群集执行最后, 总是输出此完成总结:
+---------------------------------------------------------------------+
| QCSD精炼群集完成 |
+---------------------------------------------------------------------+
| |
| 已分析故事: [故事名/ID] |
| 生成报告: [计数] |
| 输出文件夹: ${OUTPUT_FOLDER} |
| |
| 精炼分数: |
| +-- SFDIPOT覆盖: __/7 因素 |
| +-- BDD场景: __ 生成 |
| +-- INVEST完整性: __% |
| +-- 关键差距: __ |
| +-- 测试想法质量: __/100 |
| |
| 推荐: [READY / CONDITIONAL / NOT-READY] |
| 理由: [1-2句理由] |
| |
| 交付物: |
| +-- 01-executive-summary.md |
| +-- 02-sfdipot-analysis.md |
| +-- 03-bdd-scenarios.md |
| +-- 04-requirements-validation.md |
| [如果HAS_API] |
| +-- 05-contract-validation.md |
| [如果HAS_REFACTORING] |
| +-- 06-impact-analysis.md |
| [如果HAS_DEPENDENCIES] |
| +-- 07-dependency-map.md |
| +-- 08-rewritten-test-ideas.md |
| +-- 09-learning-persistence.json |
| |
+---------------------------------------------------------------------+
如果推荐是NOT-READY, 也输出此突出动作框:
+---------------------------------------------------------------------+
| 需要动作: 故事未为冲刺准备好 |
+---------------------------------------------------------------------+
| |
| 在下次精炼前必须解决以下阻碍: |
| |
| 1. [阻碍1带具体补救] |
| 2. [阻碍2带具体补救] |
| 3. [阻碍3带具体补救] |
| |
| 下一步: |
| - 解决所有P0阻碍 |
| - 修复后重新运行 /qcsd-refinement-swarm |
| - 目标: INVEST完整性 >= 90%, 0关键差距 |
| |
+---------------------------------------------------------------------+
如果推荐是CONDITIONAL, 输出此指导框:
+---------------------------------------------------------------------+
| 条件: 故事需要小调整 |
+---------------------------------------------------------------------+
| |
| 故事可以在这些条件下进入冲刺: |
| |
| 1. [条件1 - 必须在头2天内解决] |
| 2. [条件2 - 必须在测试前解决] |
| |
| 风险接受: |
| - 团队承认剩余差距 |
| - 如果条件未满足, 冲刺范围可能需要调整 |
| |
+---------------------------------------------------------------------+
不要在不显示完成总结的情况下结束群集。
报告文件名映射
| 代理 | 报告文件名 | 阶段 |
|---|---|---|
| qe-product-factors-assessor | 02-sfdipot-analysis.md |
批次1 |
| qe-bdd-generator | 03-bdd-scenarios.md |
批次1 |
| qe-requirements-validator | 04-requirements-validation.md |
批次1 |
| qe-contract-validator | 05-contract-validation.md |
批次2 (条件) |
| qe-impact-analyzer | 06-impact-analysis.md |
批次2 (条件) |
| qe-dependency-mapper | 07-dependency-map.md |
批次2 (条件) |
| qe-test-idea-rewriter | 08-rewritten-test-ideas.md |
批次3 (转换) |
| 学习持久化 | 09-learning-persistence.json |
阶段7 (自动执行) |
| 综合 | 01-executive-summary.md |
阶段6 |
DDD领域集成
此群集跨1个主要领域, 3个条件领域, 和1个转换领域操作:
+-----------------------------------------------------------------------------+
| QCSD精炼 - 领域映射 |
+-----------------------------------------------------------------------------+
| |
| 主要领域 (总是活动) |
| +-----------------------------------------------------------------------+ |
| | requirements-validation | |
| | ----------------------------------------------------------------- | |
| | - qe-product-factors-assessor (SFDIPOT 7因素) | |
| | - qe-bdd-generator (Gherkin场景) | |
| | - qe-requirements-validator (INVEST + DoR) | |
| +-----------------------------------------------------------------------+ |
| |
| 条件领域 (基于故事内容) |
| +-----------------------+ +-----------------------+ |
| | contract-testing | | code-intelligence | |
| | ------------------- | | ------------------- | |
| | qe-contract- | | qe-impact-analyzer | |
| | validator | | qe-dependency-mapper | |
| | [如果HAS_API] | | [如果HAS_REFACTORING | |
| | | | or HAS_DEPENDENCIES]| |
| +-----------------------+ +-----------------------+ |
| |
| +------------------------------------------+ |
| | enterprise-integration | |
| | ---------------------------------------- | |
| | qe-middleware-validator | |
| | [如果HAS_MIDDLEWARE] | |
| | qe-odata-contract-tester | |
| | [如果HAS_SAP_INTEGRATION] | |
| | qe-sod-analyzer | |
| | [如果HAS_AUTHORIZATION] | |
| +------------------------------------------+ |
| |
| 转换领域 (总是活动) |
| +-----------------------------------------------------------------------+ |
| | test-generation | |
| | ----------------------------------------------------------------- | |
| | - qe-test-idea-rewriter (动作动词转换) | |
| +-----------------------------------------------------------------------+ |
| |
+-----------------------------------------------------------------------------+
执行模型选项
此技能支持3个执行模型。根据你的环境选择:
| 模型 | 何时使用 | 优点 | 缺点 |
|---|---|---|---|
| 任务工具 (主要的) | Claude代码会话 | 完整代理能力, 并行执行 | 需要Claude代码 |
| MCP工具 | MCP服务器可用 | Fleet协调, 内存持久化 | 需要MCP设置 |
| CLI | 终端/脚本 | 任何地方工作, 可脚本化 | 仅顺序 |
按模型快速开始
选项A: 任务工具 (推荐)
只需按照下面的技能阶段 - 使用Task()调用带run_in_background: true
选项B: MCP工具
// 为精炼领域初始化fleet
mcp__agentic-qe__fleet_init({
topology: "hierarchical",
enabledDomains: ["requirements-validation", "contract-testing", "code-intelligence", "test-generation"],
maxAgents: 7
})
// 编排精炼任务
mcp__agentic-qe__task_orchestrate({
task: "qcsd-refinement-analysis",
strategy: "parallel"
})
选项C: CLI
# 初始化协调
npx @claude-flow/cli@latest swarm init --topology hierarchical --max-agents 7
# 路由任务
npx @claude-flow/cli@latest hooks pre-task --description "为[故事]的QCSD精炼"
# 执行代理
npx @claude-flow/cli@latest agent spawn --type qe-product-factors-assessor
npx @claude-flow/cli@latest agent spawn --type qe-bdd-generator
npx @claude-flow/cli@latest agent spawn --type qe-requirements-validator
快速参考
强制总结
| 阶段 | 必须做 | 失败条件 |
|---|---|---|
| 1 | 检查所有7个标志 | 缺失标志评估 |
| 2 | 在一个消息中启动所有3个核心代理 | 少于3个任务调用 |
| 3 | 等待完成 | 结果前继续 |
| 4 | 启动所有已标志条件代理 | 跳过TRUE标志 |
| 5 | 应用精确决策逻辑 | 错误推荐 |
| 6 | 生成完整报告 | 缺失部分 |
| 7 | 总是存储学习 + 保存09-learning-persistence.json | 模式损失, 缺失审计跟踪 |
| 8 | 总是运行测试想法重写器 | 跳过转换 |
| 9 | 输出完成总结 | 缺失最终输出 |
质量门阈值
| 指标 | READY | CONDITIONAL | NOT-READY |
|---|---|---|---|
| SFDIPOT覆盖 | >=7/7 | 5-6/7 | <5/7 |
| BDD场景 | >=10 | 3-9 | <3 |
| INVEST完整性 | >=90% | 50-89% | <50% |
| 关键差距 | 0 | 1-3 | >3 |
领域到代理映射
| 领域 | 代理 | 阶段 | 批次 |
|---|---|---|---|
| requirements-validation | qe-product-factors-assessor | 核心 | 1 |
| requirements-validation | qe-bdd-generator | 核心 | 1 |
| requirements-validation | qe-requirements-validator | 核心 | 1 |
| contract-testing | qe-contract-validator | 条件 (HAS_API) | 2 |
| code-intelligence | qe-impact-analyzer | 条件 (HAS_REFACTORING) | 2 |
| code-intelligence | qe-dependency-mapper | 条件 (HAS_DEPENDENCIES) | 2 |
| enterprise-integration | qe-middleware-validator | 条件 (HAS_MIDDLEWARE) | 2 |
| enterprise-integration | qe-odata-contract-tester | 条件 (HAS_SAP_INTEGRATION) | 2 |
| enterprise-integration | qe-sod-analyzer | 条件 (HAS_AUTHORIZATION) | 2 |
| test-generation | qe-test-idea-rewriter | 转换 (总是) | 3 |
执行模型快速参考
| 模型 | 初始化 | 代理启动 | 内存存储 |
|---|---|---|---|
| 任务工具 | N/A | Task({ subagent_type, run_in_background: true }) |
N/A (使用MCP) |
| MCP工具 | fleet_init({}) |
task_submit({}) |
memory_store({}) |
| CLI | swarm init |
agent spawn |
memory store |
MCP工具快速参考
// 初始化
mcp__agentic-qe__fleet_init({
topology: "hierarchical",
enabledDomains: ["requirements-validation", "contract-testing", "code-intelligence", "test-generation"],
maxAgents: 7
})
// 任务提交
mcp__agentic-qe__task_submit({ type: "...", priority: "p0", payload: {...} })
mcp__agentic-qe__task_orchestrate({ task: "...", strategy: "parallel" })
// 状态
mcp__agentic-qe__fleet_status({ verbose: true })
mcp__agentic-qe__task_list({ status: "pending" })
// 内存
mcp__agentic-qe__memory_store({ key: "...", value: {...}, namespace: "qcsd-refinement" })
mcp__agentic-qe__memory_query({ pattern: "qcsd-refinement-*", namespace: "qcsd-refinement" })
mcp__agentic-qe__memory_share({
sourceAgentId: "qcsd-refinement-swarm",
targetAgentIds: ["qe-learning-coordinator"],
knowledgeDomain: "refinement-patterns"
})
CLI快速参考
# 初始化
npx @claude-flow/cli@latest swarm init --topology hierarchical --max-agents 7
# 代理操作
npx @claude-flow/cli@latest agent spawn --type [代理类型] --task "[描述]"
npx @claude-flow/cli@latest hooks pre-task --description "[任务]"
npx @claude-flow/cli@latest hooks post-task --task-id "[ID]" --success true
# 状态
npx @claude-flow/cli@latest swarm status
# 内存
npx @claude-flow/cli@latest memory store --key "[键]" --value "[json]" --namespace qcsd-refinement
npx @claude-flow/cli@latest memory search --query "[查询]" --namespace qcsd-refinement
npx @claude-flow/cli@latest memory list --namespace qcsd-refinement
群集拓扑
QCSD精炼群集 v1.0
|
批次1 (核心 - 并行)
+-----------+---+-----------+
| | |
+-----v-----+ +---v---+ +--------v--------+
| 产品因素 | | BDD | | 需求验证器 |
| 评估器 | | 生成器 | | (SFDIPOT+DoR) |
| (SFDIPOT) | |(Gherkin)| | 验证器 |
|-----------| |-------| |-----------------|
| req-valid | |req-val| | req-valid |
+-----+-----+ +---+---+ +--------+--------+
| | |
+------------+--------------+
|
[指标门]
|
批次2 (条件 - 并行)
+-----------+---+-----------+
| | |
+-----v-----+ +---v--------+ +---v----------+
| 合同验证 | | 影响分析器 | | 依赖映射器 |
| 验证器 | | [IF REFAC] | | [IF DEPS] |
| [IF API] | |分析器 | | 映射器 |
|-----------| |------------| |--------------|
| contract | | code-intel | | code-intel |
+-----------+ +------------+ +--------------+
|
[综合]
|
阶段7 (学习持久化 - 总是)
|
+-------v-------+
| memory_store |
| memory_share |
| 09-learning- |
| persistence |
| (总是运行) |
+-------+-------+
|
批次3 (转换 - 总是)
|
+-------v-------+
| 测试想法 |
| 重写器 |
| (总是运行) |
|---------------|
| test-gen |
+-------+-------+
|
[最终报告]
清单总结
| 资源类型 | 计数 | 主要 | 条件 | 转换 |
|---|---|---|---|---|
| 代理 | 10 | 3 | 6 | 1 |
| 子代理 | 0 | - | - | - |
| 技能 | 3 | 3 | - | - |
| 领域 | 5 | 1 | 3 | 1 |
| 并行批次 | 3 | 1 | 1 | 1 |
使用的技能:
context-driven-testing- 上下文适当测试策略testability-scoring- 10个可测试性原则risk-based-testing- 风险优先级矩阵
应用的框架:
- SFDIPOT - 7个产品因素, 37个子类别
- BDD/Gherkin - 场景规格语言
- INVEST - 故事质量验证 (6个标准)
- DoR - 就绪定义检查表 (10个项目)
- Robert C. Martin耦合指标 (Ca/Ce/I)
关键原则
故事进入冲刺准备测试, 不是准备争论。
此群集提供:
- 什么产品因素重要? -> SFDIPOT分析 (7个因素, 37个子类别)
- 我们应该如何测试它? -> BDD场景 (Gherkin规格)
- 需求完整吗? -> INVEST验证 (6个标准 + DoR)
- 合同安全吗? -> 合同验证 (如果涉及API)
- 什么是爆炸半径? -> 影响分析 (如果重构)
- 什么是耦合风险? -> 依赖映射 (如果依赖)
- 测试想法可操作吗? -> 测试想法重写器 (总是)
- 它冲刺就绪吗? -> READY/CONDITIONAL/NOT-READY决策
- 我们学到了什么? -> 内存持久化用于未来循环