测试Skill开发三步走:SKILL.md + scripts + references实战指南

简介: 本文详解如何将测试经验封装为Claude Code可复用的“Skill”——一个结构化文件夹(含SKILL.md、references/、scripts/),实现用例生成自动化。通过渐进式加载、精准触发与模块化扩展,大幅提升测试效率与质量复用性。

别让AI每次都从零学起,把你的测试经验封装成它随取随用的“技能包”

大家好,我是某互联网公司的测试架构师。

上个月,团队来了个新项目。测试新人小陈接了个“订单取消功能”的用例设计任务,按以往的经验,这活儿至少3天。

他打开Claude Code,调了一个Skill,2小时后交出了一份覆盖正常流程、异常场景、边界值、权限校验的完整用例集。

测试组长看完之后,问了一句:“这是谁写的?质量比我自己写还高。”

小陈说:“不是我写的,是我写的一个Skill。”

组长说:“把Skill给我看看。”

这篇文章,就是小陈那个Skill的完整拆解。

一、先搞清楚:Skill到底是什么?
很多人第一次接触Skill,以为就是“高级一点的Prompt”。完全不是一回事。

Anthropic官方对Skill的定义很干脆:一个Skill就是一个文件夹。里面必须有一个SKILL.md文件,还可以放脚本(scripts/)、参考资料(references/)、静态资源(assets/)。

用大白话说:Skill就是把“资深测试工程师怎么做用例设计”的完整经验,封装成一个文件夹。AI在需要的时候自动加载,按你的要求执行任务。

Skill的核心设计理念是渐进式披露(Progressive Disclosure) 。什么意思?

平时Claude只加载每个Skill的名字和描述——大约100个Token。等到它判断这个Skill和当前任务相关时,才把完整内容加载进来。如果Skill里还有references目录下的长篇文档,Claude只在需要时才去读。

这个设计意味着:你可以装几十个Skill,上下文不会爆炸。只有真正用到的Skill才会占用Token。

Skill和MCP的区别是什么? MCP解决的是“模型能用什么工具”——连数据库、接GitHub、操作浏览器。Skill解决的是“模型该怎么用这些工具”——按什么步骤、什么格式、什么标准。两者是协作关系,不是替代关系。

二、三步走:从零到第一个测试Skill
下面以小陈的“测试用例生成Skill”为例,走完完整的三步。

第一步:搭目录结构(2分钟)
Skill必须放在Claude Code能识别的位置。有三种放法:

位置
路径
生效范围
个人
~/.claude/skills//
所有项目
项目
.claude/skills//
当前项目
插件

/skills//
插件启用时
如果同名,优先级是个人 > 项目。

小陈的项目级Skill放在.claude/skills/test-case-generator/。目录结构是这样的:

test-case-generator/
├── SKILL.md # 必需:核心指令
├── references/ # 可选:参考文档
│ ├── test-case-template.md
│ └── bug-patterns.md
└── scripts/ # 可选:可执行脚本
└── format_cases.py
关键规则:

SKILL.md文件名必须全大写,写成skill.md不行
文件夹命名必须用kebab-case(小写+连字符),比如test-case-generator✅,Test Case Generator❌
第二步:写SKILL.md(30分钟)
SKILL.md是整个Skill的“大脑”。它分两部分:YAML头信息 + Markdown正文。

YAML头信息
头信息控制Skill什么时候触发、怎么触发:


name: test-case-generator
description: 根据功能描述自动生成覆盖正常流程、异常场景、边界条件和权限校验的结构化测试用例。当用户提到"生成测试用例""编写测试""测试覆盖""测试场景"时自动触发。
when_to_use: 用户需要从需求文档或功能描述生成测试用例时使用。适用于功能测试、回归测试、接口测试的用例设计阶段。
disable-model-invocation: false

allowed-tools: Read, Write, Edit, Bash

每个字段的含义:

name:Skill名称,只能用小写字母、数字和连字符,最长64字符。不能含anthropic或claude
description:最重要的字段。Claude把所有Skill的description预加载进上下文,用来判断该不该触发这个Skill。要写清楚“什么时候用”,而不是“它有什么用”
when_to_use:额外的触发上下文,比如触发短语或示例请求
disable-model-invocation:设为true可以阻止Claude自动触发,只能手动调用
allowed-tools:限制Skill能用哪些工具
description的好坏对比:

❌ 坏的:description: 帮助用户生成测试用例
✅ 好的:description: 当用户需要从需求文档或功能描述生成测试用例时使用。适用于功能测试、回归测试、接口测试的用例设计阶段。
Markdown正文
正文就是操作手册——告诉Claude“这件事具体怎么做”。小陈的Skill正文核心部分是这样的:

任务

根据用户提供的功能描述或需求文档,生成覆盖正常流程、异常操作、边界条件和权限校验四大类场景的测试用例。

执行步骤

步骤1:理解需求

读取用户提供的功能描述,提取:

  • 核心功能是什么
  • 输入参数和约束条件
  • 业务规则和状态流转
  • 权限和角色要求

步骤2:识别测试场景

基于需求分析,系统性地列出所有测试场景:

正常流程:用户按预期方式操作时的完整路径

  • 至少覆盖1条完整的Happy Path

异常场景:用户操作不当或系统异常时的表现

  • 参数缺失、格式错误、业务规则违反
  • 依赖服务超时或返回错误

边界条件:输入或状态的极限值

  • 数值边界(最小值、最大值、空值)
  • 状态边界(状态转换的临界点)

权限校验:不同角色和权限下的访问控制

  • 未授权访问、越权操作

步骤3:生成用例

为每个场景生成结构化用例,包含:

  • 用例编号:{模块}-{类型}-{序号}
  • 测试场景:一句话描述
  • 前置条件:执行前必须满足的条件
  • 测试步骤:编号列表,每步具体可执行
  • 预期结果:执行后的期望结果
  • 优先级:P0/P1/P2

步骤4:自检

对照场景分类检查是否有遗漏:

  • [ ] 每个功能点是否有至少1条正向用例?
  • [ ] 每个输入参数是否有异常场景覆盖?
  • [ ] 边界值是否覆盖了上下界?
  • [ ] 不同角色权限是否都有验证?

输出格式

Markdown表格,可直接复制到Excel或测试管理工具。

用例编号 测试场景 前置条件 测试步骤 预期结果 优先级
... ... ... ... ... ...

注意事项

  • 不臆造需求中不存在的功能
  • 如果信息不明确,标注"需确认"而不是猜测
  • 每个功能点至少生成1条正向用例 + 3条异常/边界场景
    三个写正文的黄金原则:

步骤要具体可执行。不要写“验证数据是否正确”,要写“调用GET /api/order/{id},检查返回的status字段是否为'已取消'”
SKILL.md控制在500行以内。超过500行,把详细内容移到references/目录
用祈使句。“运行脚本”“检查输出”,不要用第二人称
第三步:用scripts和references扩展能力(按需)
Skill真正的威力在于可扩展。当SKILL.md超过500行,或者需要可执行代码时,就用scripts/和references/来分担。

references/:放长文档
references/目录放Claude按需加载的参考资料。小陈放了两个文件:

references/test-case-template.md:详细的用例模板和示例,SKILL.md里只引用它:

标准用例模板

正向用例示例

用例编号 测试场景 前置条件 测试步骤 预期结果
ORDER-CANCEL-001 已支付未发货订单取消成功 用户已登录;订单状态为"已支付";订单未发货 1.进入订单详情页 2.点击"取消订单" 3.确认取消 订单状态变为"已取消";库存回滚;退款发起

异常用例示例

...
references/bug-patterns.md:历史Bug模式库,用于场景补全时参考。

在SKILL.md里这样引用:

参考资料

  • 详细的用例模板和示例,参考 references/test-case-template.md
  • 历史Bug模式,参考 references/bug-patterns.md
    重要:Claude只在需要时才读这些文件。不要把所有内容都塞进SKILL.md。

scripts/:放可执行代码
scripts/目录放被执行的代码,而不是被加载到上下文里的文档。Claude不看代码内容,只看执行结果。

小陈放了一个格式化脚本scripts/format_cases.py,把生成的用例表格转成Excel:

import pandas as pd
import sys

def format_cases(markdown_table):

# 把Markdown表格转成Excel格式
# ...
pass

if name == "main":
format_cases(sys.stdin.read())
在SKILL.md里这样引用:

步骤5:格式化输出

生成用例后,用 python scripts/format_cases.py 将表格转为Excel格式,方便导入测试管理工具。
scripts vs references的简单判断:

需要执行才能得到结果 → 放scripts/
只需要阅读参考 → 放references/
三、完整目录结构一览
把三部分串起来,一个完整的测试Skill长这样:

test-case-generator/
├── SKILL.md # 核心指令(<500行)
├── references/ # 按需加载的参考文档
│ ├── test-case-template.md # 详细用例模板
│ ├── bug-patterns.md # 历史Bug模式库
│ └── api-examples.md # 接口调用示例
└── scripts/ # 可执行脚本
├── format_cases.py # 用例格式转换
└── validate_cases.py # 用例完整性校验
四、避坑指南
坑一:SKILL.md超过500行还不拆分
Claude每次加载Skill都要读完整的SKILL.md。超过500行会浪费大量Token。

解法:把详细内容移到references/,SKILL.md只放核心流程和导航。

坑二:description写得太空
description是Claude判断“要不要触发这个Skill”的唯一依据。写“帮助测试”这种描述,Claude永远不知道什么时候该用它。

解法:description要写清楚“触发条件”——什么场景下、用户说什么话时用这个Skill。

坑三:忽略渐进式披露
把所有内容塞进SKILL.md,每个会话都白白消耗大量Token。

解法:利用三级加载机制——frontmatter(始终加载)→ SKILL.md正文(相关时加载)→ references/文件(按需加载)。

坑四:Skill建完不迭代
Skill不是一次性产物。业务在变、需求在变,Skill也需要跟着更新。

解法:在SKILL.md末尾加一个## Learnings章节,记录每次使用中发现的问题和改进点。

最后
传统测试的底层资产是“测试用例库”——用例是一次性的,用完就扔。

AI时代的底层资产正在变成“Skill库”——Skill是可组合、可复用的能力单元。

一个Skill封装的不只是一个具体输入输出,而是一种“做某件事的方法”。你今天花30分钟写了一个“测试用例生成”的Skill,以后每一个项目都能复用。

目前社区已经有大量高质量的测试Skill库可供参考。Anthropic官方的skills仓库在GitHub上已获得14.1万+星标,是AI工具类仓库中关注度最高的之一。

下次你发现自己在Claude Code里反复输入同一套测试流程的时候,停下来,花30分钟把它封装成一个Skill。

30分钟的投入,换的是未来每一天的效率翻倍。

本文系作者基于真实项目经验的总结。文中所有目录结构和配置均来自2026年实际落地项目,可直接复制使用。

相关文章
|
20天前
|
人工智能 缓存 前端开发
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了
DeepSeek Harness + DeepSeek V4 Pro 项目实战保姆级教程!手把手带你从零安装开源 AI 编程工具,开发架构图、知识讲解网站、3D 网页游戏、全栈 AI 应用 4 个项目,覆盖运行模式选择、插件安装与开发,看看能不能对标 Claude。
13231 90
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了
|
8天前
|
人工智能 自然语言处理 安全
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
本文聚焦阿里云2026年推出的三款自研AI办公产品,清晰拆解千问办公、Qoder Teams、Qoder CN的差异化定位与能力边界:千问办公主打职场全场景提效,支持自然语言指令一键完成PPT生成、数据分析等高频办公任务;Qoder Teams面向程序员团队,深度整合AI代码生成、团队协同与企业知识库能力;Qoder CN则专为金融、政务等强合规场景打造,实现数据不出境与VPC私有化部署。文章同步给出分场景选型指南与最新活动定价,帮助不同类型的企业按需组合产品,实现业务岗、研发岗与强合规场景的AI能力全覆盖。
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
|
3天前
|
缓存 人工智能 API
阿里云Qwen3.8‑Flash完整能力解析:模型特性、API调用实操与计费规则深度拆解
在AI应用快速落地的当下,开发者与企业选型大模型API,不再只单纯关注评测榜单分数,推理速度、上下文长度、多模态能力、工具调用稳定性以及实际调用成本,共同决定项目能否平稳上线。Qwen3.8‑Flash作为新一代多模态混合专家模型,主打高性能推理与低成本开销,面向编程开发、智能Agent工作流、超长文档解析、图文混合理解等高频场景,提供托管API服务,权重同时开放可供本地部署,兼容主流接口协议,能够无缝接入各类开发工具链。很多开发者在接入过程中,容易混淆普通按量Token计费、缓存计费、各类订阅计划之间的差异,造成实际账单超出预估。本文从模型底层架构、核心功能能力、适用场景、API调用实操、完
801 0
|
13天前
|
Web App开发 人工智能 API
16 个超火的 DeepSeek Harness 插件,大肥鱼已经落后 N 个版本了。。。
DeepSeek Harness 精选插件推荐合集,从图片识别、浏览器操控、多 Agent 协作到手机远程控制,一口气带你看完 DSH 社区热门的十几个插件,覆盖技能扩展、UI 界面增强、整活玩法三大类,让你的鲸鱼变得更强。
1792 4
|
14天前
|
人工智能 Java BI
【AI】DeepSeek Harness 安装、运行、管理插件
本文介绍了如何运行DeepSeek开源的Agent框架DeepSeek Harness(dsh)。主要内容包括:使用nvm安装适配的Node版本;通过代理加速克隆GitHub源码;使用pnpm安装依赖并启动项目;配置DeepSeek API Token;安装扩展功能的插件。该框架自带Web界面,支持模型适配、文件编辑等插件化功能
1969 1
|
人工智能 JavaScript 开发工具
DeepSeek Harness 本地安装与使用指南
DeepSeek Harness(DSH)是DeepSeek AI开源的Agent运行框架,支持本地文件操作、命令执行与工具调用。基于Cordis插件架构,具备高扩展性与强可控性,适合开发者搭建可控Agent环境或开展模型基准测试。当前为开发者预览版,需Node.js环境,推荐先用`npx @deepseek-ai/dsh web`快速体验。
5230 0
|
9天前
|
人工智能 Linux iOS开发
Ollama使用教程:Ollama官网下载、Ollama本地部署大模型(2026最新)
Ollama 是一款免费开源的本地大模型运行工具,支持在 Windows/macOS/Linux 上离线运行 Qwen、DeepSeek、Llama 等主流开源模型,数据不出本机、隐私安全。提供 OpenAI 兼容 API,命令行一键拉取/运行/管理模型,无需联网,无调用限制,是开发者与 AI 爱好者部署本地 AI 助手的理想选择。(239 字)
|
16天前
|
人工智能 JavaScript 测试技术
保姆级教程:DeepSeek Harness从安装到跑通测试,30分钟上手
DeepSeek Harness是DeepSeek开源的AI Agent运行时,主打“一行命令安装、5分钟跑通”。它让模型真正动手干活——读代码、跑测试、分析失败、生成修复方案。本文手把手教你30分钟从零上手,覆盖安装、配置、实测及避坑指南,助你快速掌握下一代AI编程范式。
|
6天前
|
人工智能 监控 测试技术
Qwen3.8-Flash 来了,100万上下文、Agent、Coding 都加强了
8月26日,通义千问发布Qwen3.8-Flash-Next:125B参数、每Token仅激活6B,原生支持26万Token、可扩展至100万上下文;Coding、Agent与工具调用能力显著增强,面向真实软件工程任务,推动大模型从“回答问题”迈向“完成工作”。