在测试工作流开始前检查用户输入是否包含有效的需求描述和足够的上下文信息。当用户的测试请求过于模糊(只说"帮我测试"却没说测什么)、缺少必要的需求文档或上下文时,应当使用此技能来验证输入完整性。如果输入验证失败,必须返回缺失信息清单要求用户补充。适用于启动任何测试设计流程的第一步。
---
name: qa-input-validation
version: 1.6.0
description: >-
在测试工作流开始前检查用户输入是否包含有效的需求描述和足够的上下文信息。当用户的测试请求过于模糊(只说"帮我测试"却没说测什么)、缺少必要的需求文档或上下文时,应当使用此技能来验证输入完整性。如果输入验证失败,必须返回缺失信息清单要求用户补充。适用于启动任何测试设计流程的第一步。
when_to_use: 用户说"需求不清楚"、"信息不够"、"这个需求能测吗"、用户输入模糊时自动激活(第一步)
allowed-tools: Read Grep Glob WebFetch
related_skills:
upstream: [] # 无上游依赖(工作流入口)
downstream:
- qa-requirement-review # 验证通过后进入需求评审
input_format:
required:
- name: 用户输入
type: string
description: 用户的需求描述或问题
optional:
- name: 附件
type: file
description: 上传的需求文档
- name: URL
type: string
description: 需求文档链接
output_format:
traceability:
- 本技能验证输入,不产出唯一ID
structure:
- validation_result: "pass/fail/need_more_info"
- input_quality_score: "输入质量评分(1-10)"
- missing_info: "缺失信息清单"
- clarification_questions: "需要追问的问题"
error_recovery_guidance:
on_failure: "返回缺失信息清单和追问问题,要求用户补充"
retry_behavior: "用户补充后重新执行输入验证"
categories: ['Development','Testing','AI']
depth_requirement_quantification:
reference_value: "根据输入模糊度调整验证深度:简单×1/中等×2/复杂×3"
minimum: "至少检查需求明确性、上下文充分性、输入类型3项"
---
> **⚠️ 安全警告**:本技能的示例可能涉及订单号、支付金额、截图、身份证、手机号等敏感数据。
> 实际使用时请勿粘贴真实生产数据、客户信息或财务凭证;测试前应脱敏/掩码处理。
> 本技能仅在 workspace/ 输出评估文件,不持久化、不外传、不跨会话复用。
# 输入验证
## 核心原则
垃圾进,垃圾出——输入质量决定输出质量。
本技能是整个QA Test Skills工作流的第一步,在需求评审之前执行,验证输入是否满足生成高质量测试用例的基本要求。
## 验证维度
### 维度1:需求明确性
```text
检查点:
├─ 是否有明确的功能描述?
├─ 是否有业务目标?
├─ 是否有用户角色?
└─ 是否有成功标准?
评分标准:
- 10分:需求完整清晰,包含所有必要信息
- 7分:需求基本清晰,缺少少量信息
- 4分:需求模糊,缺少关键信息
- 1分:需求不明,无法理解
```
### 维度2:上下文充分性
```text
检查点:
├─ 是否有业务背景?
├─ 是否有技术架构?
├─ 是否有历史缺陷?
├─ 是否有约束条件?
└─ 是否有参考文档?
评分标准:
- 10分:上下文完整,可直接生成
- 7分:上下文基本充分,可补充少量信息
- 4分:上下文不足,需要补充
- 1分:上下文缺失,无法生成
```
### 维度3:输入类型识别
```text
输入类型:
├─ 直接描述:文字描述需求
├─ 上传文件:附件/文件路径
├─ URL链接:http/https开头
└─ 混合输入:多种类型组合
验证规则:
- 直接描述:检查是否包含功能关键词
- 上传文件:检查文件是否可读取
- URL链接:检查URL是否可访问
- 混合输入:检查各部分是否完整
```
## 验证流程
### 步骤1:解析用户输入
```text
解析内容:
├─ 提取需求描述
├─ 识别输入类型
├─ 检查是否有附件/URL
└─ 提取关键词
```
### 步骤2:评估输入质量
```text
评估维度:
├─ 需求明确性(0-10分)
├─ 上下文充分性(0-10分)
├─ 信息完整性(0-10分)
└─ 可测试性(0-10分)
综合评分 = (需求明确性 + 上下文充分性 + 信息完整性 + 可测试性) / 4
```
### 步骤3:生成验证结果
```text
结果类型:
├─ pass(通过):综合评分≥7分
├─ need_more_info(需要更多信息):综合评分4-6分
└─ fail(失败):综合评分<4分
```
## 输出格式
### 通过(pass)
```json
{
"validation_result": "pass",
"input_quality_score": 8,
"missing_info": [],
"recommendation": "输入质量良好,可以继续执行"
}
```
### 需要更多信息(need_more_info)
```json
{
"validation_result": "need_more_info",
"input_quality_score": 5,
"missing_info": [
"缺少业务背景描述",
"缺少用户角色说明",
"缺少约束条件"
],
"clarification_questions": [
"这个功能的业务目标是什么?",
"主要用户有哪些角色?",
"有什么技术约束或业务规则?"
],
"recommendation": "请补充以上信息后再生成"
}
```
### 失败(fail)
```json
{
"validation_result": "fail",
"input_quality_score": 2,
"missing_info": [
"缺少功能描述",
"缺少业务背景",
"缺少所有必要信息"
],
"clarification_questions": [
"请描述需要测试的功能是什么",
"这个功能的业务背景是什么",
"主要用户是谁,核心流程是什么"
],
"recommendation": "输入信息严重不足,无法生成有效测试用例"
}
```
## 输入类型速查表
| 输入类型 | 示例 | 验证重点 | 典型评分区间 |
|---------|------|---------|------------|
| 功能名称 | "测试登录" | 缺业务目标、用户角色、约束 | 4-6分 |
| 场景描述 | "用户输入密码错误3次锁定" | 缺边界条件、非功能需求 | 6-8分 |
| PRD文档 | 上传完整需求文档 | 检查可读性、覆盖度、歧义 | 7-10分 |
| URL链接 | 需求文档链接 | 检查可访问性、内容完整性 | 5-9分 |
| 截图/图片 | 功能截图 | 缺完整上下文、业务规则 | 3-6分 |
| Bug描述 | "XX功能报错了" | 缺复现步骤、环境、数据 | 3-5分 |
| 混合输入 | 描述+附件+URL | 各部分一致性、互补性 | 6-9分 |
## 常见输入问题与追问策略
| 问题模式 | 表现 | 追问策略 |
|---------|------|---------|
| 只给功能名 | "测试订单" | 问业务目标+用户角色+核心流程 |
| 只说报错 | "XX报500错误" | 问复现步骤+请求参数+环境信息 |
| 需求模糊 | "测一下性能" | 问具体指标+场景+数据量级 |
| 缺少上下文 | 纯功能描述无背景 | 问技术栈+依赖服务+约束条件 |
| 期望不明确 | "帮我测好" | 问测试范围+优先级+输出格式 |
## 输出示例
**用户只说"帮我测试"**
→ 输入验证评分低于4分(fail),触发追问:
- "请描述需要测试的功能是什么"
- "这个功能的业务背景是什么"
**用户上传PRD文档**
→ 输入验证评分8分(pass),验证通过进入需求评审
**用户说"测试登录功能",缺少用户角色说明**
→ 输入验证评分5分(need_more_info),触发追问补充用户角色和约束条件
## 检查清单
输入验证完成后检查:
- [ ] 需求描述是否明确?
- [ ] 上下文是否充分?
- [ ] 输入类型是否识别?
- [ ] 验证结果是否准确?
- [ ] 缺失信息是否列出?
- [ ] 追问问题是否具体?
## 异常处理引导
| 场景 | 表现 | 处理方式 |
|------|------|---------|
| 用户拒绝提供信息 | 输入评分<4,用户不愿补充 | 输出最小可用用例集,标注高风险未覆盖项 |
| 文件无法读取 | 上传文件损坏/格式不支持 | 提示支持格式,建议用文本重新描述需求 |
| URL无法访问 | 链接失效/需要登录 | 提示用户直接粘贴文档内容 |
| 输入互相矛盾 | 描述与附件内容冲突 | 列出矛盾点,请用户确认以哪个为准 |
## 追问模板速查
| 缺失类型 | 追问模板 | 目的 |
|---------|---------|------|
| 功能目标不明 | "这个功能要解决用户的什么问题?" | 锁定业务目标 |
| 用户角色缺失 | "谁会用这个功能?分几种角色?" | 明确角色视图 |
| 边界不清晰 | "输入有什么限制?最大/最小/格式?" | 定位测试边界 |
| 规则不清楚 | "有没有业务规则或约束条件?" | 识别隐性需求 |
| 范围过大 | "先聚焦哪个模块?优先级是什么?" | 缩小测试范围 |
don't have the plugin yet? install it then click "run inline in claude" again.