后台收到一条留言:"我按你说的写了Skill,AI生成了52条用例,看着挺像那么回事。结果一执行,一半跑不通。"
答案是:Skill是起点,不是终点。
没有经过迭代优化的Skill,生成的用例"看起来对但执行不了"——结构完整、字段齐全、数量到位,但仔细一看,步骤是PRD原文复述、前置条件缺上游链路、用例放错了模块。
这不是AI"不行",是Skill的约束还不够。
今天这篇文章,不讲怎么写Skill(之前写过),讲的是怎么让Skill越来越好。
一个真实的迭代案例
先说场景。
一次中等复杂度的迭代:6个前端页面 + 5个后端模块 + 消息通知卡片交互 + 多步骤业务流程(异常检测→消息推送→数据修改→操作回退→状态刷新)。AI一次性生成了52条用例。
看结构:有功能模块、有子模块、有步骤、有预期结果、有前置条件。数量合理,覆盖面看着也够。
看起来很成功。
然后我开始逐条审核。
第3条就发现问题了——步骤写的是"检查配置方案选取",预期写的是"优先取在线状态的配置作为比对基准"。
这是PRD原文,不是测试步骤。
继续往下审,问题一个接一个冒出来。最终52条用例里,发现了6类质量问题。
每发现一个问题,我的处理流程是:
发现 → 修复当前用例 → 分析根因 → 写入Skill规则 → 验证下一轮不再犯
这个循环,就是Skill迭代的核心。
优化循环:五步法
很多人以为Skill写完就完事了。实际上,Skill的质量是"喂"出来的——你喂给它多少真实问题,它就长出多少防御能力。
具体怎么做?五步:
第一步:人工审核
AI生成 ≠ 可用。这一步不能跳过。
审核的视角不是"结构对不对",而是"能不能执行"。步骤写了"检查XX"——具体怎么检查?在哪个页面?点哪个按钮?预期结果写了"正常显示"——正常是什么样?有哪些字段?
第二步:定位问题
不是笼统说"质量不好",要精确到:哪条用例、哪个字段、具体什么问题。
"TC-015的步骤[1]只写了'检查XX',没有具体操作"——这才是可定位的问题。后面实战部分会详细展开。
第三步:分析根因
偶尔犯一次是粗心,同一类问题反复出现,说明是Skill缺少约束。
比如发现3条用例的步骤都是"检查XX",根因就不是"AI偶尔偷懒",而是Skill没有明确要求步骤必须包含具体操作。
第四步:写入规则
规则要具体到可执行。
❌ "注意用例质量"——废话,AI不知道什么叫质量。 ✅ "每条步骤必须包含具体操作+具体验证点,禁止以'检查/验证/确认'作为步骤全部内容"——AI拿到这条规则,能直接判断自己的输出合不合格。
第五步:验证效果
下一轮生成时,看同类问题是否消失。如果还在,说明规则不够严,或者根因分析偏了,回到第三步。连续两轮未出现同类问题,才算验证通过。
这个循环不是跑一次就结束,是每轮迭代都在跑。 每发现一类问题,就在质量自检清单里加一条。后面会看到,清单从最初的16条扩展到了26条,每一条都是这个循环跑出来的。
实战:三个典型陷阱的完整闭环
光讲方法论太抽象。下面用三个真实案例,展示"发现问题→分析根因→写入规则→验证效果"的完整过程。
陷阱一:步骤复述PRD
发现问题:
审核到TC-015,步骤写的是:
步骤:[1]检查配置方案选取 预期:[1]优先取在线状态的配置作为比对基准
这就是把PRD需求复述了一遍,不是可执行的测试步骤。测试人员拿到这条用例,不知道该在哪里看、怎么操作、验证什么。
继续审,发现同类问题还有好几条——"检查告警推送"、"确认变更记录"、"验证复原逻辑",全是这种"检查XX"的写法。
分析根因:
AI倾向于"翻译"PRD文字,而不是站在测试执行角度思考。PRD写"优先取在线状态的配置",AI就直接把这句话搬过来当预期结果。它不理解"测试步骤"和"需求描述"的区别。
写入规则:
每条步骤必须包含「具体操作」+「具体验证点」。 禁止以"检查/验证/确认"作为步骤的全部内容。 自检:如果你把这条步骤交给一个不熟悉需求的测试人员,他能直接执行吗?
修复后的用例:
`TC-015 在线配置优先作为比对基准
前置条件:
- 设备A存在"在线"状态的配置V2.1
- 同时存在"待生效"状态的配置V2.0
- 设备A处于运行状态
步骤:
[1]打开系统监控后台日志,筛选设备A
[2]等待下一个任务完成触发比对
[3]在日志中搜索"基准配置"关键词
[4]确认日志中记录的基准配置版本号
预期:
[1]日志可查看,筛选结果正确
[2]比对逻辑触发
[3]日志记录基准配置为V2.1(在线状态)
[4]未降级到V2.0(待生效状态)
`
验证效果: 下一轮生成,同类问题从11条降到0条。
陷阱二:前置条件缺少上游链路
发现问题:
TC-023,验证"回退确认页展示"功能:
前置条件:1. 回退确认页已展示
这条用例验证的是回退确认页的展示逻辑,但前置条件只写了"回退确认页已展示"——回退确认页是怎么来的?要先有异常检测→消息推送→用户提交修改→用户点击回退,才能看到回退确认页。
如果测试人员拿到这条用例,第一步就要问:回退确认页在哪?怎么触发?
分析根因:
AI写前置条件时只写了"直接前置"(回退确认页已展示),没有追溯"间接前置"(上游步骤的完成状态)。它不理解业务是有链路的,每一步都依赖前面的步骤。
写入规则:
每条用例的前置条件必须包含业务链路中上游步骤的完成状态。 自检:这个前置条件描述的状态,是怎么来的?如果回答不了,就缺上游。
修复后的用例:
`TC-023 回退页面原始值由系统预填
前置条件:
- 用户已通过消息通知端提交临时修改(Step 02完成)
- 用户点击回退按钮,回退确认页已展示(Step 03触发)
`
验证效果: 同类问题从9条降到0条。
陷阱三:脑补PRD未涉及的功能
发现问题:
TC-031,验证折线图功能:
TC-031 折线图支持导出功能 步骤:[1]查找导出按钮 → [2]点击导出
我翻遍了PRD,图表交互列表里没有"导出"这个功能。问AI为什么写了这条用例,它的理由是"折线图一般都有导出功能"。
分析根因:
AI会根据"常见功能"假设系统有某些能力。它见过太多带导出功能的折线图,就默认你的也有。这不是推理,是脑补。
写入规则:
每个功能点必须有PRD/画板/评审会议的明确依据。 禁止基于"常见功能"、"一般都有"、"通常会支持"等假设补充用例。 无依据的功能点,标记为"待确认",而不是默认包含。 自检:这条用例的功能点,在PRD/画板/评审纪要的哪一页?
验证效果: 同类问题从1条降到0条。
除了上面三个,这次迭代还发现了另外三类问题,这里列一下,不展开:
-
术语与PRD文字不一致:
UI稿写的"在线修改",PRD写的"临时修改",AI直接用了PRD的。规则:UI稿 > 画板 > PRD文字,PRD可能是早期草稿。
-
用例放错了模块/功能模块:
"回退确认页展示"的用例被放在了"异常通知"模块下,但实际属于"页面状态刷新"。规则:用例归属取决于PRD流程步骤,不取决于"看起来相关"。
-
缺少回归用例:
新增"在线修改"功能时,没有验证原有"正式修改"功能是否正常的用例。规则:每次新增功能,至少1条回归用例验证旧功能不受影响。
什么时候改规则,什么时候改结构
上面三个例子,都是"加一条规则"就解决了。但我踩过的坑告诉我,有些问题加规则不管用——得改Skill的结构。
怎么判断?
改规则(大多数情况):
问题出在某类用例的写法上。比如步骤复述PRD、前置条件缺上游——这是AI"偷懒",加条规则约束它就行。
改Skill结构(少数情况):
问题出在AI的信息获取方式上。规则再严,AI没拿到正确信息,也写不出正确用例。
举个真实例子:AI给配置详情页写了"修改人"字段,但页面探查知识库(我维护的一个记录页面实际元素结构的知识库)里实际没有这个字段——AI凭PRD文字脑补了页面元素。加一条"禁止脑补"规则有用吗?没用,因为AI根本没读知识库。
真正要改的是Skill的执行流程:在生成用例之前,强制加入"读取页面探查知识库"这一步。让AI先看实际页面结构,再写用例。
类似的情况还有:AI不读画板/原型图。PRD里有7个画板,AI只记录了标题,没读内容,导致用例缺少具体的UI元素和交互流程。解决方案不是加规则说"要读画板",而是在Skill的分析阶段强制加入画板读取步骤。
判断标准: 如果同一个根因反复出现,不是规则不够严,是Skill的执行流程有漏洞。
效果数据
经过6轮迭代优化后的数据:
|
指标
|
优化前
|
优化后
|
| --- | --- | --- |
|
步骤模糊用例
|
11条
|
0条
|
|
脑补用例
|
1条
|
0条
|
|
放错位置用例
|
3条
|
0条
|
|
前置条件缺上游
|
9条
|
0条
|
|
质量自检条目
|
16条
|
26条
|
|
总用例
|
52条
|
52条(质量提升,数量不变)
|
注意最后一行:用例数量没变,变的是质量。 这就是Skill迭代的价值——不是让AI生成更多用例,而是让生成的每条用例都能直接执行。
10条新增规则主要来自4类高频问题(步骤复述PRD、前置条件缺上游、放错位置、脑补功能),其中"步骤复述PRD"和"前置条件缺上游"贡献了最多规则增量,因为这两类问题出现频率最高,且根因需要多条规则从不同角度约束。
AI写用例的质量上限,取决于Skill的约束下限
没有规则约束的AI,会走捷径:复述PRD、脑补功能、跳过画板、忽略上游链路。它不是故意偷懒,是没有人告诉它"这样不行"。
每发现一个问题,就加一条规则,让AI下次不再犯。
Skill不是写完就能用的工具,是一个需要持续喂养、持续进化的系统。 你喂给它多少真实问题,它就长出多少防御能力。
所以回到开头的问题:有了Skill,AI写的用例质量还是不行?
不是Skill不行,是你还没把它喂够。
下次生成完用例,别急着用。先审一轮,把问题记下来,写进规则,再生成一轮。三轮之后,你会发现Skill的防御能力越来越细密——那些规则都是你一条条加的,但合在一起产生了你当初没预料到的整体效果。