Awesome QA Skills 更新:从 QA Skill 集合到可治理的 AI QA Skills 体系

之前介绍过一次我维护的开源项目 Awesome QA Skills。

一开始,项目的想法很简单:

把软件测试和 QA 工作中经常重复的方法、经验和工作流程,沉淀成可以被 AI Agent 直接使用的 Skill。

项目地址:

https://github.com/naodeng/awesome-qa-skills

在线目录:

https://inaodeng.com/qaskills/

经过最近几个版本的迭代,项目的重点已经变了。

最开始,我主要关注:

QA 日常工作里还有哪些事情适合沉淀成 Skill?

所以早期先增加了大量和实际测试工作直接相关的能力:

需求分析
测试策略
测试设计
功能测试
API 测试
UI 自动化测试
性能测试
回归测试
发布测试

但是随着 Skill 数量越来越多,问题开始发生变化。

从最开始的:

有没有这个 Skill?

逐渐变成:

这么多 Skill 应该怎么分类、怎么找到、怎么安装、怎么组合、怎么验证,以及怎么避免能力重复?

再往后还有一个更加重要的问题:

Skill 本身的质量怎么保证?

后面的几个版本,基本都在回答这些问题。

把 Awesome QA Skills 到目前为止的变化按版本排开,大致是:

阶段重点变化
早期版本QA 基础 Skill
v1.1需求与质量能力扩展
v1.2研发全过程质量能力扩展
v1.3可靠性(Reliability)、安全(Security)、质量工程(Quality Engineering)和 AI 原生 QA(AI Native QA)
v1.4Skill 体系治理与能力收口
v1.5Skills CLI / Agent Skills 分发
v1.5.1Skill 评测质量闭环
v1.5.2Skill 路由与组合(Router + Composition)
v1.6匹配评审与证据边界治理(Match Review)

这条版本路线也反映出项目定位的变化:从 QA Prompt、QA Skill,逐渐发展到安装与分发、发现与路由、组合、评测、回归和治理。

项目也从一个 QA Skill 集合,逐渐走向一套 AI QA Skills 体系。

早期版本:先把 QA 方法变成 Skill

一开始没急着设计复杂的治理体系,先想验证一个问题:

QA 的方法和经验,能不能从个人经验转化成 Agent 可以重复使用的能力?

所以早期版本主要围绕日常测试工作建设 Skill,例如需求分析(requirements-analysis)、测试策略(test-strategy)、功能测试(functional-testing)、API 测试(api-testing)、性能测试(performance-testing)、回归测试(regression-testing)、Playwright UI 测试(ui-test-playwright)和发布测试工作流(release-testing-workflow)。

对应的是从需求理解、风险识别、测试策略、测试设计,到执行和质量结论的一整套常见 QA 工作。

这个阶段关注的不是 Skill 数量,而是能不能把 QA 方法结构化:让 Agent 理解什么时候使用、需要什么输入、应该执行什么步骤,以及最终输出什么。

v1.1:从“怎么测试”走向“需求本身有没有问题”

基础测试能力逐渐补齐之后,如果 Skill 只回答“怎么测试”,实际上仍然只是传统测试工作的 AI 化。

QA 在真实研发过程中还需要判断需求有没有遗漏、歧义和冲突,验收条件是否明确,需求是否可测试,变更会影响哪些范围,以及主要质量风险在哪里。

所以这一阶段开始重点补充需求质量相关能力,例如:

需求质量复核
需求缺口分析
需求歧义分析
需求一致性分析
需求冲突分析
可测试性分析
变更影响分析
质量风险识别

Skill 开始从“帮助 QA 执行测试”向“帮助团队更早发现质量问题”扩展。

v1.2:从测试阶段扩展到研发全过程

QA Skill 不应该只在开发完成、提测以后才有价值。

因此项目逐渐覆盖需求、设计、开发、代码变更、测试、发布和生产等不同阶段的质量活动,包括代码评审(Code Review)、API 质量、UI 自动化测试、回归测试选择、性能测试、可测试性分析、变更影响分析和发布质量等。

Awesome QA Skills 开始从“测试阶段的 Skill 集合”向“研发全过程的质量 Skill”扩展。

v1.3:继续扩展专业质量领域

随着研发全过程的基础能力逐渐补齐,项目继续向可靠性(Reliability)、安全(Security)、质量工程(Quality Engineering)和 AI 原生 QA(AI Native QA)等方向扩展。

可靠性相关能力开始覆盖稳定性、故障、恢复、生产验证、指标分析、链路追踪(Trace)分析、根因分析和事故分析;质量工程则继续关注测试工程、自动化、回归、质量效能和工程实践。

另一个方向也变得重要:AI 原生 QA(AI Native QA)。

AI Native QA(AI 原生 QA):不仅用 AI 做测试,也要测试 AI

之前说 AI 测试,很多时候实际上指的是 AI for QA,例如让 AI 帮助分析需求、设计测试、生成测试用例、编写自动化测试、分析日志和辅助定位问题。

但是随着 LLM、Agent 和各种 AI 功能越来越多,还有另一类问题:Testing for AI。

项目逐渐增加 AI 功能测试(ai-feature-testing)、LLM 测试(llm-testing)、AI Agent 测试(ai-agent-testing)、提示词测试(prompt-testing)和提示词注入测试(prompt-injection-testing)。

测试对象也开始从 Web、API、移动端、数据库、服务扩展到 LLM、Prompt、Agent、RAG、工具调用(Tool Calling)、AI 功能和 AI 安全边界。

AI 系统存在概率性输出、上下文依赖、模型差异、工具调用(Tool Calling)等特征,传统 Web/API 测试方法仍然有价值,但已经无法覆盖所有问题。

v1.4:Skill 多了以后,开始治理

随着 Skill 从几十个增加到一百多个,一个新的问题出现了:继续增加 Skill,还是最重要的事吗?

如果没有治理,很容易出现能力高度重合、中英文不同步、工作流引用旧能力、Skill 修改后评测没有更新等问题。

因此,这个阶段把重点从“增加 Skill”转向“管理 Skill”,逐渐建立 Skill 注册表(Skill Registry)、能力矩阵(Skill Matrix)、匹配登记表(Matching Register)、双语一致性契约(Bilingual Consistency Contract)、弃用契约(Deprecation Contract)、评测契约(Evaluation Contract)和治理路线图(Governance Roadmap)。

项目没有为了重新分类而大规模移动已有 Skill 目录,而是采用“稳定物理目录 + 逻辑能力分类 + Registry(注册表)+ Matrix(能力矩阵)+ Metadata(元数据)+ Workflow(工作流)”的方式继续演进。

对于已经有实际用户的开源项目来说,兼容性本身也是质量的一部分。

现在项目已经有多大?

目前 Awesome QA Skills 每种语言包含 164 个 Skill:

10 个测试工作流
149 个测试类型 Skill
5 个 Skill 工程化能力

中英文两套目录合计 328 个 Skill 目录。

更准确地说:164 个逻辑 Skill 分别提供 English 与 Chinese 两个本地化版本。

中英文共用稳定的规范 Skill 名称(Canonical Skill Name),例如 functional-testing。语言差异主要存在于提示词(Prompt)、文档、示例、描述和用户交互。

目前这些 Skill 从逻辑上大致分成四层:基础 QA 能力 → 质量工程能力 → 生产质量能力 → AI 原生 QA。

此外还有横向的 Skill 工程化能力,负责 Skill 自身的质量工程。

单个 Skill 之外,还需要工作流

真实项目里的 QA 工作很少只需要一个 Skill。

一次发布可能涉及需求理解、风险分析、测试策略、回归范围选择、测试执行、缺陷判断、发布验证和 Go / No-Go。

所以项目除了单个测试 Skill,还保留了日常测试工作流(daily-testing-workflow)、迭代测试工作流(sprint-testing-workflow)和发布测试工作流(release-testing-workflow)。

还提供产品质量视角(product-quality-perspective)、QA 质量视角(qa-quality-perspective)、技术质量视角(technical-quality-perspective)、用户体验质量视角(ux-quality-perspective)、项目交付质量视角(project-delivery-perspective)和多角色质量综合(multi-role-quality-synthesis)。

工作流并不是重新实现已有 Skill,而是回答:一个真实研发场景里,多个 Skill 应该怎样配合?

v1.5:Skill 开始真正可安装

从 v1.5 开始,项目完成了对 Skills CLI / Agent Skills 分发方式的兼容。

例如:

npx skills add naodeng/awesome-qa-skills --skill functional-testing

指定安装到 Codex:

npx skills add naodeng/awesome-qa-skills --skill functional-testing -a codex

中文版可以显式指定中文目录:

npx skills add https://github.com/naodeng/awesome-qa-skills/tree/main/skills/zh --skill functional-testing

使用方式也从手工配置转向由 Agent 直接发现和调用:

使用方式具体流程
原来的方式找到 Skill → 复制目录 → 手工配置
现在的方式安装 Skill → Agent 发现 → 调用 Skill

v1.5 发布时完成:

324 个 Skill 扫描
135 个仓库测试通过
Skills CLI 兼容性问题 = 0
CLI 发现通过
独立安装冒烟测试通过

v1.5.1:Skill 自己也需要测试

Skill 可以安装之后,接下来的问题是:安装成功,就代表 Skill 有效吗?

当然不是。

真实模型仍然可能没有正确发现 Skill、在错误场景触发、输出结果不符合预期、忽略关键约束,或者在修改之后出现回归。

因此,从 v1.5.1 开始,项目建立 Skill 评测质量闭环,新增 Skill 质量评审(skill-quality-review)和 Skill 评测(skill-evaluation)。

并形成:

步骤质量闭环
1Skill 变更
2静态检查
3结构检查
4评测
5证据
6回归
7评审

到这个版本:

328 个 Skill 扫描
155 个仓库测试通过

同时开始为 requirements-analysis、ui-test-playwright 等 Skill 增加评测试点。

v1.5.2:Skill 太多以后,需要路由器

当每种语言都有 164 个 Skill 后,如何选择合适的 Skill,开始成为一个现实问题。

因此,v1.5.2 重点加强了 discover-testing 这个 Skill 路由器。

用户可以直接描述任务目标,路由器再根据当前研发阶段、用户目标、风险类型和输入材料选择主要 Skill 和辅助 Skill。

同时增加 skill-composition.yaml,作为 Skill 组合的结构化信息来源。目前先整理了五条路线:

新功能质量准备
API 交付
变更与回归
性能决策
AI 功能验证

路由器目前仍保持轻量,主要负责发现、选择和组合建议,并没有直接变成复杂的多 Agent 编排系统。

到 v1.5.2,验证结果进一步增加到:

328 个 Skill 扫描
177 个仓库测试通过

同时增加了路由器试点评测和离线 skill.selection trace 证据。

v1.6:不是每个新需求都应该新增 Skill

到 v1.6,项目开始重点解决 Skill 越做越多、越做越重复的问题。

项目也明确了一条治理原则:

先匹配,后增强;先合并,后新增。

一个新的 Skill 候选进入项目之后,首先进行匹配评审(Match Review),可能得到:

匹配已有能力(MATCH)、合并到已有 Skill(MERGE)、增强已有 Skill(ENHANCE),或新建 Skill(NEW)。

例如,对容量规划(capacity-planning)、工作负载建模(workload-modeling)、需求变更影响分析(requirement-change-impact-analysis)和质量风险识别(quality-risk-identification)等候选能力进行项目上下文复核后,项目继续复用已有目标 Skill,而不是创建新的平行目录。

项目也开始从“追求 Skill 数量”转向“追求 Skill 边界和质量”。

v1.6 当前验证结果为:

328 个 Skill 扫描
190 个仓库测试通过
328 / 328 Skill Eval 配置有效
Skills CLI 兼容性通过
双语治理视图通过

同时为 4 个目标 Skill 分别增加中英文项目上下文评测,共 8 个。

但完整真实模型回放仍标记为 INSUFFICIENT_EVIDENCE,不能因为版本已经发布,就直接认为“全部验证通过”。

现在如何保证一个 Skill 的质量?

现在,仅仅满足 SKILL.md 存在、提示词(Prompt)写好了、示例存在、目录正确,远远不够。

一个 Skill 的质量至少要回答这些问题:

能力是否真的需要、边界是否清晰、结构是否完整、中英文是否一致、Agent 能否正确发现、是否在正确场景触发、输出是否遵守约束、评测是否覆盖关键行为、修改后是否发生回归,以及真实模型是否有足够证据。

所以现在 Skill 质量已经不再只是提示词写得好不好,而是一整套 Skill 质量闭环(Skill Quality Loop)。

第一道质量门:先判断这个 Skill 是否应该存在

新增 Skill 的第一步不再是创建目录,而是先检查已有能力:搜索已有 Skill、比较使用场景、输入输出、能力边界和已有评测,然后进行匹配评审。

最后再决定:

匹配已有能力(MATCH)、合并到已有 Skill(MERGE)、增强已有 Skill(ENHANCE),或新建 Skill(NEW)。

这是新增 Skill 的第一道质量门。

第二道质量门:明确能力边界

如果确认需要新增,还需要明确这个 Skill 解决什么问题、什么时候使用、什么时候不使用、需要什么输入、输出什么、不负责什么,以及和相邻 Skill 有什么区别。

如果一个 Skill 无法清楚回答“为什么不能直接使用旁边那个 Skill?”,那么它的能力边界可能还没有设计清楚。

第三道质量门:Skill 包必须自洽

根据不同 Skill 的需要,可能包含:

SKILL.md
Prompt
metadata
agents/openai.yaml
examples
templates
references
Eval cases

并不是所有 Skill 都必须拥有完全相同的文件,但希望单独拿走一个 Skill 时,它仍然能够被理解和使用,尽量保持 Skill 独立性。

第四道质量门:双语能力保持一致

中英文不是两个完全独立的 Skill,而是一个逻辑 Skill 的中英文本地化版本。

需要保持规范 Skill 名称(Canonical Skill Name)、能力边界、提示词核心逻辑、元数据、资源引用、评测结构和行为预期的一致。

这并不意味着逐字翻译。更重要的是:

语言可以不同,能力不能变成两个不同的 Skill。

第五道质量门:自动化静态检查

Skill 实现完成之后,需要进入自动化质量检查,例如:

bash scripts/check_skills_quality.sh

检查 Skill 结构、元数据、规范名称、双语结构、资源引用、Skill 独立性、评测结构、治理视图和 Skills CLI 兼容性等内容。

不过,静态检查通过,不等于 Skill 有效性通过(Static PASS ≠ Skill Effectiveness PASS)。

静态检查只能证明静态检查所覆盖的内容通过,不能证明真实模型一定可以正确使用这个 Skill。

第六道质量门:用评测(Eval)验证行为

Skill 评测不只是验证文件是否存在,而是验证在给定任务下,Skill 应该表现出什么行为。

例如检查应该识别什么、不应该输出什么、是否遵守边界、是否区分事实和假设、是否正确处理缺失证据,以及是否产生不受支持的结论。

对于基于 LLM 的 Skill 来说,也不能简单要求“输入 A,必须逐字输出 B”。

评测更适合验证关键行为、约束、边界、证据和禁止行为。

也就是:验证行为契约,而不是固定答案。

第七道质量门:失败变成回归用例

如果一个 Skill 在评测或真实使用中发现问题,不应该只是修改提示词然后关闭问题。

更理想的方式是:

步骤处理动作
1发现问题
2保留失败证据
3分析原因
4修改 Skill
5转换成回归用例(Regression Case)
6重新评测

从传统 QA 的角度看,本质上就是:

把 Skill 的缺陷变成 Skill 的回归测试。

第八道质量门:严格区分证据

项目会明确区分静态证据、结构证据、评测证据、运行时证据、真实模型证据和人工复核证据。

例如,190 个仓库测试通过,只能说明这 190 个测试所覆盖的检查通过,不能说明 164 个 Skill 在所有模型上都表现正常。

同样,328 / 328 个评测配置有效,只能证明 Eval 配置有效,不能说明 328 个 Skill 已经全部通过真实模型验证。

所以项目会明确使用:

PASS
NOT_RUN
NOT_SCORED
BLOCKED
UNASSESSED
INSUFFICIENT_EVIDENCE

项目用这些状态描述真实情况。

核心原则是:

没有失败,不等于已经通过;没有证据,就不扩大结论。

Skill 修改之后,也需要重新验证

Skill 后续可能修改提示词、触发描述、元数据、输入约束、输出结构、示例、引用资料和评测,任何一项变化都可能影响 Agent 行为。

所以修改后的流程也需要进入质量闭环:

步骤修改后的质量检查
1Skill 修改
2修改评审
3静态验证
4现有评测
5新增回归用例
6证据对比
7合并

项目中的 skill-change-verification 用来回答这个问题:

Skill 改了以后,怎么证明没有把原来的能力改坏?

以后新增一个 Skill,要经历什么?

把上面的规则汇总起来,一个新的 Skill 大致会经历以下过程:

阶段关键步骤
提出与复用提出新能力 → 搜索已有 Skill → Match Review
匹配决策MATCH / MERGE / ENHANCE / NEW
设计与实现定义能力边界 → 定义输入 / 输出 / 非目标 → 实现中英文 Skill → Canonical Name 检查
静态检查静态质量检查 → Skills CLI 兼容检查
评测与证据设计并执行 Eval → 记录 Evidence
回归与治理失败转 Regression Case → 同步 Registry / Matrix / Catalog
评审与发布Review → Release

发布以后,流程还没有结束:

步骤发布后的持续改进
1真实使用
2发现问题
3收集证据
4回归用例(Regression Case)
5Skill 增强
6重新评测
7下一次发布

最终形成:

阶段生命周期
1设计
2实现
3验证
4评测
5发布
6观察
7改进
8下一轮

这就是项目正在建立的 Skill 质量闭环。

质量不是一个简单的分数

后续可以继续探索 Skill 质量评分。

但现阶段,我并不希望简单给每个 Skill 一个 92 / 100,然后说这个 Skill 质量很好。

因为 Skill 质量至少包括:

结构完整性
能力边界
触发准确性
输出质量
证据遵循
双语一致性
模型兼容性
回归稳定性
真实项目有效性

其中很多维度目前还没有足够的真实证据。

所以相比一个看起来很精确的分数,我现在更倾向于明确什么已经验证、什么还没有验证、什么验证失败、什么被阻塞、什么证据不足,以及什么需要真实项目继续观察。

从“写 Skill”逐渐走向“工程化维护 Skill”

过去更多是在“写 Skill”。

现在更像是在工程化维护 Skill:

工程化阶段包含内容
设计与实现Skill 设计、Skill 实现
测试与评测Skill 测试、Skill 评测
持续维护Skill 回归、Skill 治理

如果 Agent Skills 最终成为 AI 工程中长期存在的能力载体,那么 Skill 本身也应该像代码、API、测试、配置和模型一样拥有自己的质量工程方法。

这个项目也在用自己的实践验证这套方法。

回头看这些版本

阶段主要变化
早期版本把 QA 方法做成 Skill
v1.1把质量活动向需求阶段前移
v1.2扩展到研发全过程
v1.3扩展可靠性、安全、质量工程和 AI 原生 QA
v1.4建立 Skill 治理体系
v1.5解决安装和分发
v1.5.1解决 Skill 自身质量评测
v1.5.2解决 Skill 发现和组合
v1.6解决重复能力和证据边界
现在逐渐形成 Skill 质量闭环

真正的变化并不是 Skill 数量增加了,而是:

Skill 开始从仓库里的一组文件,逐渐变成一套有设计、测试、评测、回归和治理生命周期的 QA 能力。

现在 Awesome QA Skills 是什么?

最开始我把它理解成 QA Prompt 集合,后来逐渐变成 QA Skill 集合。

现在则更接近:

演进阶段当前能力
1QA 知识和方法
2可复用 Skill
3Skills CLI
4Skill 路由器
5Skill 组合
6Skill 评测
7回归
8匹配评审
9治理

所以我现在更愿意把 Awesome QA Skills 定义为:

一套面向 AI Agent 的 QA Skills 体系。

它想解决的已经不只是“帮我生成几个测试用例”,而是尝试把 QA 在整个软件研发过程中积累的分析方法、测试方法、工作流程、风险判断、多角色质量视角、证据要求和决策边界,逐渐转化成 Agent 可以发现、安装、调用、组合、评测、回归和持续改进的能力。

下一步

后面还会继续增加新的 QA 能力。

但 164 → 200 → 300 → 500 不会是项目最重要的衡量指标。

相比 Skill 数量,我会更加关注下面这条从能力边界走向真实项目价值的质量链路:

关注阶段核心问题
能力边界Skill 边界是否清晰?
发现能力路由器(Router)能不能准确发现?
安装能力能不能稳定安装?
组合能力能不能正确组合?
评测能力评测(Eval)是否有效?
回归能力修改以后能不能回归?
模型适配不同模型表现如何?
真实验证真实项目是否有效?

这条链路不是简单的功能清单:前面的边界、发现、安装和组合,决定了后面的评测与回归是否有意义;最终还要回到不同模型和真实项目中验证。

后续还会继续探索:

  • Skill 路由准确性
  • 跨模型评测
  • Skill 组合
  • 使用证据
  • 真实项目验证
  • AI 原生 QA
  • Skill 治理
  • Skill 质量闭环

最终希望 Awesome QA Skills 不只是一个越来越大的提示词仓库,而是一套 可发现、可安装、可组合、可评测、可回归、可治理、可演进 的 QA Agent Skills 体系。

最后

AI 给 QA 带来的变化,可能并不只是测试用例可以生成得更快。

我现在更感兴趣的是另一个问题:

QA 多年来积累的方法、经验和质量判断,能不能被结构化成 Agent 可以稳定复用的能力?

如果可以,那么接下来的问题就不只是怎么写一个好的提示词,而是要沿着一条完整的工程化链路继续追问:

阶段需要回答的问题
设计怎么设计一个 Skill?
证明怎么证明它有效?
诊断怎么发现它的问题?
治理怎么避免能力重复?
变更验证怎么验证修改没有引入回归?
模型适配怎么让它适配不同模型?
持续演进怎么根据真实使用证据持续演进?

也就是说,Skill 不只是“写出来”,还要能够证明有效、暴露问题、避免重复、验证修改,并根据真实证据持续演进。

从早期版本到现在的 v1.6,Awesome QA Skills 基本就是围绕这些问题持续探索。

最近最有意思的变化,就是这一点:

Awesome QA Skills 不只是用 Skill 帮助 QA 做质量,也开始用 QA 的方法测试、评测和治理 Skill 自己。

项目地址:

https://github.com/naodeng/awesome-qa-skills

发布记录:

https://github.com/naodeng/awesome-qa-skills/releases

在线目录:

https://inaodeng.com/qaskills/

分享