「属性测试编写」是开发与测试工程师的高频任务。它的输入通常是函数说明,期望得到的是属性测试代码。这类有固定流程、又需要一点判断力的工作,很适合封装成智能体 Skill。

背景(虚构)

老陈是一名开发,每周都要做几次属性测试编写。过去靠复制粘贴提示词,结果不稳定。这次团队把它做成了技能,下面记录一次完整运行。

1. 发出请求

老陈在测试框架与 CI 流水线中输入:

帮我做一下属性测试编写,材料是附上的函数说明。

2. 技能被触发

智能体根据技能描述判断任务匹配,加载「属性测试编写」的完整指令。它先运行技能自带的脚本做预处理,确保后续分析基于准确的数据。

3. 找出函数不变量

这一步的产出会作为下一步的输入。智能体在“找出函数不变量”时遇到一处含糊的信息,没有自行猜测,而是标注出来等待确认。

4. 用属性测试框架表达

“用属性测试框架表达”是最容易出错的环节,技能里专门写了要求,所以智能体给出了清楚的结果与理由。

5. 设置输入生成器

智能体完成“设置输入生成器”,并在中间结果里注明依据,方便老陈回看。

6. 运行并缩小反例

“运行并缩小反例”是最容易出错的环节,技能里专门写了要求,所以智能体给出了清楚的结果与理由。

7. 交付与复核

智能体交付属性测试代码,末尾列出两条需人工确认的内容。老陈对照原始函数说明抽查关键信息,修正一处表述后采用。

复盘:这次做对了什么

  • 步骤写在技能里,没有遗漏
  • 不确定处被标出,而不是被编造
  • 遵守了「生成的测试要先在本地跑通,别只盯覆盖率数字」
  • 风险较低,但输出仍需快速过目再使用

可以改进的地方

老陈发现智能体对团队内部术语理解不一致,于是在技能目录中加了一份术语表(reference.md),并在 SKILL.md 中写明“遇到术语先查表”。更多改法见定制指南。

常见变体

同一个技能可以按使用场景派生出几个变体:

  • 简版:只保留核心步骤(找出函数不变量、运行并缩小反例),适合快速过一遍
  • 详版:每一步都写出理由与依据,适合交给他人复核或留档
  • 批量版:一次处理多份函数说明,输出汇总表,适合定期集中处理

变体之间共享同一套约束,只在步骤详略和输出格式上有差异。可以在一个技能里用参数区分,也可以拆成几个名称明确的技能。

什么时候用这个技能

  • 手头有函数说明,需要在较短时间内得到属性测试代码
  • 同类任务每周出现多次,希望每次处理方式一致
  • 结果要交给同事或上级复核,需要统一的结构和清楚的依据
  • 新人接手这类工作,需要一个可以照着做的标准流程

反过来,如果只是偶尔做一次,或者任务高度依赖现场判断,直接和测试框架与 CI 流水线里的智能体对话即可,不必专门封装成技能。

延伸阅读

说明:文中的配置、代码与目录结构均为示意,用于说明思路;各平台的入口、字段名与能力会更新,落地前请以对应官方文档为准。示例中的数据与场景为虚构,不代表真实案例。