name: generate-cases description: 使用形式化技术(等价类划分、边界值分析、决策表)生成系统测试用例。用于全面测试覆盖设计。 allowed-tools: Read, Write, Glob, Grep, Skill, Task argument-hint: <requirement-or-feature>
生成测试用例命令
使用形式化测试设计技术为需求或功能生成全面的测试用例。
流程
步骤 1: 解析输入
需求/功能可以是:
- 需求 ID (REQ-001) - 在文档中查找
- 功能描述 - 直接分析
- 文件路径 - 读取规范
步骤 2: 加载技能
调用 test-strategy:test-case-design 技能以获取技术指导。
步骤 3: 分析测试空间
识别:
- 输入: 所有参数及其有效/无效范围
- 状态: 任何状态依赖行为
- 条件: 具有多个条件的业务规则
- 输出: 每个场景的预期结果
步骤 4: 委托给代理
生成 test-case-generator 代理:
为以下内容生成系统测试用例:
[需求/功能描述]
应用这些技术:
1. 等价类划分 - 识别有效/无效类
2. 边界值分析 - 在边缘测试
3. 决策表 - 如果存在多个条件
4. 状态转换 - 如果存在状态依赖行为
输出:
1. Markdown格式的测试用例规范
2. .NET xUnit代码(如果适用)
步骤 5: 组织输出
按类别结构化测试用例:
## 测试用例: [功能名称]
### 正面测试(快乐路径)
| TC-ID | 描述 | 输入 | 预期 |
|-------|-----|------|------|
| TC-001 | 有效最小值 | 18 | 接受 |
| TC-002 | 有效标准值 | 40 | 接受 |
### 负面测试(验证)
| TC-ID | 描述 | 输入 | 预期 |
|-------|-----|------|------|
| TC-003 | 低于最小值 | 17 | 拒绝 |
| TC-004 | 空输入 | null | 错误 |
### 边界测试
| TC-ID | 描述 | 输入 | 预期 |
|-------|-----|------|------|
| TC-005 | 在最小值 | 18 | 接受 |
| TC-006 | 在最大值 | 65 | 接受 |
### 边缘情况
| TC-ID | 描述 | 输入 | 预期 |
|-------|-----|------|------|
| TC-007 | 零值 | 0 | 拒绝 |
| TC-008 | 负值 | -1 | 拒绝 |
步骤 6: 生成代码(可选)
如果检测到.NET项目,生成xUnit测试:
public class [Feature]Tests
{
// 边界值测试
[Theory]
[InlineData(17, false)]
[InlineData(18, true)]
[InlineData(65, true)]
[InlineData(66, false)]
public void Validate_BoundaryValues_ReturnsExpected(int input, bool expected)
{
var result = _validator.Validate(input);
Assert.Equal(expected, result);
}
}
步骤 7: 报告
## 生成的测试用例
**功能**: [名称]
**应用的技术**: [列表]
**总测试用例数**: [数量]
| 类别 | 数量 |
|------|------|
| 正面 | X |
| 负面 | Y |
| 边界 | Z |
| 边缘情况 | W |
**创建的文件**:
- [路径/到/test-cases.md]
- [路径/到/Tests.cs](如果适用)
**覆盖说明**:
- 所有输入分区已覆盖
- 边界值已测试
- [任何缺口或假设]
示例
从描述:
/test-strategy:generate-cases "年龄验证:接受年龄 18-65"
从需求:
/test-strategy:generate-cases REQ-015
从文件:
/test-strategy:generate-cases docs/requirements/user-registration.md