第三章 测试和迭代

第三章 测试和迭代

技能可以根据你的需求在不同的严格程度下进行测试:

  • 在 Claude.ai 中手动测试 - 直接运行查询并观察行为。快速迭代,无需任何设置。
  • 在 Claude Code 中脚本化测试 - 自动化测试用例,以便在更改过程中进行可重复的验证。
  • 通过技能 API 进行程序化测试 - 构建评估套件,系统地针对定义的测试集运行。

选择与你的质量要求和技能可见性相匹配的方法。内部小团队使用的技能与部署给数千名企业用户的技能有不同的测试需求。

专业提示: 在扩展之前先迭代单个任务

我们发现,最有效的技能创建者会在单个具有挑战性的任务上进行迭代,直到 Claude 成功,然后将成功的方法提取到技能中。这利用了 Claude 的上下文学习能力,并提供比广泛测试更快的反馈。一旦你有了一个可行的基础,就可以扩展到多个测试用例以获得覆盖率。

推荐的测试方法

基于早期经验,有效的技能测试通常涵盖三个领域:

1. 触发测试

目标: 确保你的技能在正确的时间加载。

测试用例:

  • ☑ 对明显的任务触发
  • ☑ 对改述的请求触发
  • ✗ 不对无关主题触发

示例测试套件:

应该触发:
- "帮我设置一个新的 ProjectHub 工作空间"
- "我需要在 ProjectHub 中创建一个项目"
- "为第四季度规划初始化一个 ProjectHub 项目"

不应触发:
- "旧金山的天气怎么样?"
- "帮我写 Python 代码"
- "创建一个电子表格"(除非 ProjectHub skill 处理表格)

2. 功能测试

目标:验证skill产生正确的输出。

测试用例:

  • 生成有效输出
  • API调用成功
  • 错误处理有效
  • 覆盖边缘情况

示例:

测试:创建包含 5 个任务的项目
给定:项目名称"Q4 Planning",5 个任务描述
当:Skill 执行工作流
那么:
- 在 ProjectHub 中创建项目
- 创建 5 个具有正确属性的任务
- 所有任务链接到项目
- 没有 API 错误

3. 性能对比

目标:证明该技能相比基线提升了结果。

使用定义成功标准中的指标。以下是一个对比示例。

基线对比:

未使用技能:
- 用户每次都需要提供指令
- 15 次往返消息
- 3 次失败的 API 调用需要重试
- 消耗 12,000 个 token
使用技能:
- 自动工作流执行
- 仅需 2 个澄清问题
- 0 次失败的 API 调用
- 消耗 6,000 个 token

使用 skill-creator skill

skill-creator skill — 可通过 Claude.ai 的插件目录获取或下载用于 Claude Code — 可以帮助你构建和迭代 skill。如果你有一个 MCP 服务器并且了解你最常用的 2-3 个工作流,你可以在一次会话中构建并测试一个功能性的 skill — 通常只需 15-30 分钟。

创建技能:

  • 从自然语言描述生成技能
  • 生成格式正确的SKILL.md文件,包含frontmatter
  • 建议触发短语和结构

审查技能:

  • 标记常见问题(模糊描述、缺失触发器、结构问题)
  • 识别潜在的过度/不足触发风险
  • 根据技能的既定目的建议测试用例

迭代改进:

  • 在使用你的技能并遇到边缘情况或失败后,将这些示例带回 skill-creator
  • 示例:"使用此对话中识别的问题和解决方案来改进技能处理[特定边缘情况]的方式"

使用方法:

"使用 skill-creator 技能帮助我为[你的用例]构建一个技能"

注意:skill-creator 帮助你设计和完善技能,但不执行自动化测试套件或产生定量评估结果。

基于反馈的迭代

技能是动态文档。计划基于以下情况进行迭代:

触发不足信号:

  • 技能在应该加载时没有加载
  • 用户手动启用它
  • 关于何时使用它的支持问题

解决方案:在描述中添加更多细节和细微差别 - 这可能包括关键词,特别是技术术语

过度触发信号:

  • 技能为不相关的查询加载
  • 用户禁用它
  • 对其用途感到困惑

解决方案:添加负面触发器,更加具体

执行问题:

  • 结果不一致
  • API 调用失败
  • 需要用户更正

解决方案:改进说明,添加错误处理