在最终输出前对测试用例做最后一轮防幻觉验证:事实核查(引用的需求ID是否存在)、一致性检查(用例之间是否矛盾)、可执行性验证(步骤是否能实际操作)、来源追溯(每个用例是否能追溯到具体需求)。当测试用例已经生成完毕、准备输出了,但你不确定AI有没有编造不存在的功能或需求时,应当使用此技能。这是整个工作流的最终质量守...
---
name: qa-output-validation
version: 1.6.0
description: >-
在最终输出前对测试用例做最后一轮防幻觉验证:事实核查(引用的需求ID是否存在)、一致性检查(用例之间是否矛盾)、可执行性验证(步骤是否能实际操作)、来源追溯(每个用例是否能追溯到具体需求)。当测试用例已经生成完毕、准备输出了,但你不确定AI有没有编造不存在的功能或需求时,应当使用此技能。这是整个工作流的最终质量守门——如果验证失败,必须返回问题清单要求修正,不得跳过。
when_to_use: AI生成测试用例后、最终输出前自动激活;用户说"验证一下输出"、"检查有没有幻觉"、"这个用例对吗"、"确认一下质量"时
allowed-tools: Read Grep Glob
related_skills:
upstream:
- qa-ai-output-critique # 输入:评审后的测试用例
- qa-ai-blindspot-compensation # 输入:补盲后的测试用例
downstream:
- qa-test-reporting # 验证通过后输出最终结果
input_format:
required:
- name: 测试用例
type: array
description: AI生成的测试用例列表
- name: 需求解构表
type: object
description: 原始需求解构结果
optional:
- name: 评审报告
type: object
description: 评审结果
output_format:
traceability:
- 本技能验证输出,不新增唯一ID;问题清单关联到原用例ID(TC-XXXX)
structure:
- validation_result: "pass/fail"
- fact_check: "事实核查结果"
- consistency_check: "一致性检查结果"
- executability_check: "可执行性验证结果"
- issues: "问题清单"
- traceability: "来源追溯"
error_recovery_guidance:
on_failure: "返回问题清单和具体失败原因,要求修正后重新生成"
retry_behavior: "修正后重新执行AI生成步骤"
categories: ['Development','Testing','AI']
depth_requirement_quantification:
reference_value: "根据用例数量调整验证深度:简单×1/中等×2/复杂×3"
minimum: "至少完成事实核查、一致性检查、可执行性验证、来源追溯4项"
---
> **⚠️ 安全警告**:本技能的示例可能涉及对虚无功能的删除或标记建议。
> 实际使用时请勿直接删除测试用例或功能项,先确认其来源并备份原数据。
> 本技能仅在 workspace/ 输出评估文件,不持久化、不外传、不跨会话复用。
# 输出验证
## 核心原则
AI可能编造不存在的内容——必须验证每个输出的依据。
## 验证维度
### 维度1:事实核查
**目标**:验证AI输出是否基于真实信息,而非编造
```text
检查点:
├─ 需求是否真实存在?
│ └─ 用例中的需求ID是否在需求解构表中?
├─ 风险是否合理推断?
│ └─ 风险ID是否基于实际风险分析?
├─ 边界是否可验证?
│ └─ 边界条件是否真实存在?
├─ 行业标准是否准确?
│ └─ 引用的行业知识是否正确?
└─ 历史缺陷是否真实?
└─ 引用的历史缺陷是否有依据?
防幻觉检查:
├─ 检查是否有"凭空捏造"的内容
├─ 检查是否有"过度推断"的内容
├─ 检查是否有"错误引用"的内容
└─ 检查是否有"逻辑矛盾"的内容
```
### 维度2:一致性检查
**目标**:验证输出各部分是否一致
```text
检查点:
├─ 需求ID与用例是否一一对应?
│ └─ 每条用例的需求ID是否在需求列表中?
├─ 风险ID与用例是否匹配?
│ └─ 风险等级是否与用例内容一致?
├─ 场景与边界是否对应?
│ └─ 边界是否覆盖了相关场景?
├─ 评审结果与实际输出是否一致?
│ └─ 评审指出的问题是否已修正?
└─ 不同技能输出是否矛盾?
└─ 需求解构、场景树、边界分析是否一致?
一致性矩阵:
| 维度1 | 维度2 | 检查项 |
|-------|-------|--------|
| 需求 | 用例 | 需求ID是否匹配 |
| 风险 | 用例 | 风险ID是否匹配 |
| 场景 | 边界 | 边界是否覆盖场景 |
| 评审 | 输出 | 问题是否已修正 |
```
### 维度3:可执行性验证
**目标**:验证测试用例是否可实际执行
```text
检查点:
├─ 测试步骤是否具体可操作?
│ └─ 步骤是否清晰到可以由任何人执行?
├─ 预期结果是否可验证?
│ └─ 预期结果是否客观可测量?
├─ 测试数据是否可构造?
│ └─ 需要的测试数据能否准备?
├─ 测试环境是否可搭建?
│ └─ 需要的环境能否搭建?
└─ 测试工具是否可用?
└─ 需要的工具是否可获取?
可执行性评分:
- 10分:完全可执行,无任何障碍
- 7分:基本可执行,少量障碍可克服
- 4分:部分可执行,有明显障碍
- 1分:无法执行,需要重新设计
```
### 维度4:来源追溯
**目标**:标注每个输出的来源和依据
```text
追溯内容:
├─ 需求来源:来自用户输入/需求文档
├─ 风险来源:来自风险分析/行业经验
├─ 边界来源:来自边界分析/最佳实践
├─ 用例来源:来自哪个技能生成
└─ 评审来源:来自哪个评审维度
追溯格式:
每条用例标注:
- 需求来源:REQ-XXX(来自需求解构)
- 风险来源:RISK-XXX(来自风险分析)
- 生成来源:qa-ai-prompt-strategy
- 评审状态:已评审/未评审
```
## 验证流程
### 步骤1:事实核查
```text
执行内容:
1. 对比用例中的需求ID与需求解构表
2. 检查风险ID是否基于实际分析
3. 验证边界条件是否真实存在
4. 检查引用的行业知识是否准确
输出:
├─ 核查通过项:[列表]
├─ 核查失败项:[列表]
└─ 幻觉风险项:[列表]
```
### 步骤2:一致性检查
```text
执行内容:
1. 验证需求ID与用例的对应关系
2. 验证风险ID与用例的匹配关系
3. 验证场景与边界的覆盖关系
4. 验证评审结果与实际输出的一致性
输出:
├─ 一致项:[列表]
├─ 不一致项:[列表]
└─ 矛盾项:[列表]
```
### 步骤3:可执行性验证
```text
执行内容:
1. 检查测试步骤的具体性
2. 检查预期结果的可验证性
3. 检查测试数据的可构造性
4. 检查测试环境的可搭建性
输出:
├─ 可执行项:[列表]
├─ 部分可执行项:[列表]
└─ 不可执行项:[列表]
```
### 步骤4:生成验证报告
```markdown
## 输出验证报告
### 验证摘要
- 验证日期:YYYY-MM-DD
- 用例总数:XX条
- 验证结果:通过/不通过
### 事实核查
| 检查项 | 结果 | 说明 |
|--------|------|------|
| 需求真实性 | 通过/失败 | [说明] |
| 风险合理性 | 通过/失败 | [说明] |
| 边界可验证性 | 通过/失败 | [说明] |
| 行业标准准确性 | 通过/失败 | [说明] |
### 一致性检查
| 检查项 | 结果 | 说明 |
|--------|------|------|
| 需求ID匹配 | 通过/失败 | [说明] |
| 风险ID匹配 | 通过/失败 | [说明] |
| 场景边界对应 | 通过/失败 | [说明] |
| 评审结果一致 | 通过/失败 | [说明] |
### 可执行性验证
| 用例编号 | 可执行性 | 问题 |
|---------|---------|------|
| TC_XXX_001 | 可执行 | - |
| TC_XXX_002 | 部分可执行 | [问题] |
| TC_XXX_003 | 不可执行 | [问题] |
### 问题清单
| 问题类型 | 用例编号 | 问题描述 | 严重程度 |
|---------|---------|---------|---------|
| 幻觉 | TC_XXX_001 | 需求ID不存在 | 高 |
| 不一致 | TC_XXX_002 | 风险等级与内容不符 | 中 |
| 不可执行 | TC_XXX_003 | 步骤过于模糊 | 中 |
### 验证结论
- 是否通过:是/否
- 主要问题:[描述]
- 建议:[建议]
```
## 验证策略速查表
不同输出类型的验证侧重点不同:
| 输出类型 | 优先验证维度 | 特别关注 | 验证深度 |
|---------|------------|---------|---------|
| 功能用例 | 可执行性+事实核查 | 步骤是否可操作 | ★★★ |
| 边界用例 | 事实核查 | 边界值是否真实存在 | ★★★★ |
| 异常用例 | 可执行性+一致性 | 异常场景是否合理 | ★★★★ |
| 安全用例 | 事实核查+可执行性 | 攻击向量是否真实 | ★★★★★ |
| 性能用例 | 可执行性 | 指标是否可测量 | ★★★ |
| 全量用例集 | 全部四维 | 全流程一致性 | ★★★★★ |
## 常见幻觉类型与处理
| 幻觉类型 | 表现 | 检测方法 | 处理方式 |
|---------|------|---------|---------|
| 虚无功能 | AI编造不存在的功能模块 | 对比需求解构表 | 删除或标记 |
| 过度推断 | 从"登录失败"推"账号被锁"但需求未提 | 检查推理链是否在需求范围内 | 降级为假设场景 |
| 数据编造 | 编造不存在的API返回字段 | 对比接口文档/边界清单 | 修正或删除 |
| 时间幻觉 | 断言"3次锁定"但需求写5次 | 比对原始需求 | 修正为准确值 |
| 跨模块矛盾 | A模块说"跳转B",B模块用例推翻 | 一致性检查矩阵 | 统一修正 |
| 依赖幻觉 | 假设了不存在的前置依赖 | 检查前置条件是否有需求支撑 | 标注[假设] |
## 输出示例
**用户说"帮我验证AI生成的登录测试用例"**
→ 事实核查:验证所有需求ID、场景、预期结果是否基于真实需求文档
→ 一致性检查:同一功能的不同用例之间描述是否一致
→ 可执行性验证:每个用例的步骤是否清晰可执行
→ 来源追溯:标注每个用例的信息来源(需求文档/分析结果/AI推断)
**AI生成了一个不存在的功能模块的测试用例**
→ 事实核查命中:该模块ID在需求文档中不存在,标记为幻觉
## 检查清单
输出验证完成后检查:
- [ ] 事实核查是否完成?
- [ ] 一致性检查是否通过?
- [ ] 可执行性验证是否完成?
- [ ] 来源追溯是否标注?
- [ ] 问题清单是否列出?
- [ ] 验证报告是否完整?
## 输出验证 vs 输出评审
| 维度 | 输出验证(本技能) | 输出评审(qa-ai-output-critique) |
|------|------------------|--------------------------------|
| 目标 | 防幻觉、保质量 | 找不足、促迭代 |
| 视角 | 事实核查:是否"真实" | 质量评估:是否"够好" |
| 输出 | 验证报告(pass/fail) | 评审报告(六维评分+改进建议) |
| 触发时机 | 最终输出前 | 生成后、迭代中 |
| 核心问题 | "这个用例能执行吗?" | "这个用例够全面吗?" |
| 处理幻觉 | 标记+删除 | 反馈+补充 |
don't have the plugin yet? install it then click "run inline in claude" again.