Test Case Generator

根据需求文档自动生成结构化测试用例,支持多种测试设计技术。

已扫描
适合谁
软件测试工程师、开发团队中的QA角色
不适合谁
需要执行测试的用户、编写自动化脚本的开发者
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @zhanghengyi1986-afk/test-case-gen

Skill 说明

命令、参数、文件名以原文为准

测试用例生成器

从多种输入源生成结构化、全面的测试用例。

何时使用

使用本技能的情况:

  • 用户提供需求文档/产品需求说明书/用户故事,需要生成测试用例
  • 输入包含“帮我写测试用例”或“根据需求生成用例”
  • 分析边界值或等价类
  • 创建测试矩阵或决策表
  • 审查现有测试覆盖情况,识别遗漏点

不适用本技能的情况:

  • 执行测试 → 使用 api-tester 或手动执行
  • 编写自动化脚本 → 使用 api-tester 或编程工具
  • 跟踪缺陷 → 使用项目管理工具

工作流程

步骤 1:分析输入

阅读提供的输入内容(需求文档、用户故事、API 规范或口头描述),识别以下要素:

  • 功能点:系统应实现的功能
  • 输入参数:所有输入项及其数据类型和约束条件
  • 业务规则:条件逻辑、校验规则、权限控制
  • 集成点:外部系统、API、数据库接口
  • 非功能性要求:性能、安全性、可用性等

步骤 2:应用测试设计技术

根据分析结果,选择合适的测试设计方法:

技术适用场景
等价类划分多个输入值具有相似行为时
边界值分析数值范围、字符串长度、日期区间等
决策表复杂业务规则涉及多个条件组合
状态转移测试存在状态变化的工作流(如订单、工单等)
错误推测法基于常见缺陷模式进行推断
成对/组合测试多个参数之间存在交互关系

步骤 3:生成测试用例

输出格式(默认为 Markdown 表格):

| ID | 模块 | 优先级 | 前置条件 | 步骤 | 输入数据 | 预期结果 | 类型 |
|----|------|--------|----------|------|----------|------------|------|
| TC001 | 登录 | P0 | 用户已注册 | 1. 打开登录页 2. 输入账号密码 3. 点击登录 | user: admin, pass: Admin@123 | 登录成功,跳转至首页 | 正向 |
| TC002 | 登录 | P0 | 用户已注册 | 1. 打开登录页 2. 输入错误密码 3. 点击登录 | user: admin, pass: wrong | 提示:“无效凭证” | 反向 |

优先级定义:

  • P0:核心功能,失败将阻塞发布
  • P1:重要功能,应在发布前修复
  • P2:次要功能,可延迟处理
  • P3:边缘场景,属于锦上添花

类型分类:

  • 正向 / 反向 / 边界 / 异常 / 安全 / 性能

步骤 4:覆盖率分析

生成后提供覆盖率总结:

📊 测试覆盖概览
- 总计用例数:25
- 按优先级分布:P0(8) P1(10) P2(5) P3(2)
- 按类型分布:正向(10) 反向(8) 边界(4) 安全(2) 性能(1)
- 估计遗漏区域:[列出未覆盖的部分]

导出选项

当用户请求导出时:

# 保存为 CSV — 写入工作区
# ~/.openclaw/workspace/output/test_cases.csv

# 保存为 JSON(用于 TestLink/禅道导入)
# ~/.openclaw/workspace/output/test_cases.json

禅道 CSV 导入格式

所属模块,用例标题,前置条件,步骤,预期,优先级,用例类型,关键词
/登录模块,正常登录验证,用户已注册,1. 打开登录页 2. 输入正确账号密码 3. 点击登录,登录成功跳转首页,1,功能测试,登录;正向
<?xml version="1.0" encoding="UTF-8"?>
<testcases>
  <testcase name="正常登录验证">
    <summary>验证使用正确账号密码能成功登录</summary>
    <preconditions>用户已注册</preconditions>
    <steps>
      <step>
        <step_number>1</step_number>
        <actions>打开登录页,输入正确账号密码,点击登录</actions>
        <expectedresults>登录成功,跳转首页</expectedresults>
      </step>
    </steps>
    <importance>2</importance>
    <execution_type>1</execution_type>
  </testcase>
</testcases>

生成高质量测试用例的建议

  • 每个数值型输入至少包含一个边界值测试
  • 每个正向用例至少对应一个反向用例
  • 不要忽略空值、空字符串、空白字符输入
  • 对多用户功能考虑并发访问场景
  • 包含数据格式校验(邮箱、手机号、身份证号等)
  • 使用特殊字符进行测试:<script>alert(1)</script>' OR 1=1--、emoji 🔍

成对/组合测试

当多个输入参数相互影响时,采用成对测试以减少组合数量:

参数A: [a1, a2, a3]
参数B: [b1, b2]
参数C: [c1, c2, c3]

全组合:3×2×3 = 18 条
成对测试:约 9 条(覆盖所有两两组合)

示例输出:

#参数A参数B参数C
1a1b1c1
2a1b2c2
3a2b1c3
4a2b2c1
5a3b1c2
6a3b2c3
...

适用场景:浏览器兼容性测试(浏览器×系统×分辨率)、表单多字段组合、配置项测试。

状态转移测试

针对以工作流或状态变化为核心的功能,绘制状态转移图:

[草稿] --提交--> [待审核] --通过--> [已发布]
   |                  |--驳回--> [已驳回] --修改--> [草稿]
   |--删除--> [已删除]

生成测试用例需覆盖:

  • 每个状态:至少访问一次
  • 每种转换:至少触发一次
  • 非法转换:验证不允许的状态变更(如 已发布→草稿)
  • 并发转换:两人同时审核同一条记录
ZA
@zhanghengyi1986-afk

已收录 1 个 Skill

相关推荐