Agent Skills + Vibe Testing:构建人机协作的测试闭环

1. Vibe Coding 盛行,质量谁来兜底?

随着 Vibe Coding 逐渐成为常态,产品经理可以用自然语言生成页面,开发也不再从零开始写代码,整体实现速度被成倍放大。甚至没有编程背景的人,也能借助 AI,把想法变成可运行的代码。

效率的提升是实实在在的,但问题也变得更直接:当代码产出越来越快,质量由谁来兜底?

当越来越多代码由大模型参与生成,并不意味着测试可以被弱化。相反,开发节奏被整体拉快,提测更频繁、周期更短,1 周内需求迭代 5 次,测试窗口从 3 天压缩到 1 天,留给测试分析和验证的时间却在减少。原本那套偏慢、依赖人工补位的测试方式,很容易在这个过程中卡住。

LLM 可以高效生产代码,但安全漏洞、逻辑缺陷、边界异常这些问题并不会因此消失。正如《Vibe Testing: How AI is Changing the Way We Test Software》中提到的:

"Just because AI helps you write code doesn't mean the software is automatically reliable. That's where Vibe Testing comes in."

所以问题的核心,不是"还要不要测试",而是:当代码生产速度被拉满之后,测试该如何跟上。

这也正是本文想讨论的两个关键词:Agent SkillsVibe Testing

前者关注的是如何把资深测试的经验沉淀下来,变成可复用、可传递的能力;后者关注的是如何借助 AI 做探索式测试,把那些规则之外、但真实存在的风险提前挖出来。

2. 什么是 Agent Skills ?

通俗来讲,Agent Skills 是专门为大模型准备的可复用能力包,基于文件系统存储。

过去给模型下任务,往往要一次性提供完整背景。有了 Agent Skills,可以把某个领域的知识提前整理好,打包成一个"技能",模型用到时再按需读取。

简单理解:就是给 AI 配一本随用随查的操作手册。

其核心机制 "渐进式披露(Progressive Disclosure)" 是 Agent Skills 最具魅力的设计,它通过一个精密的三层加载结构来节省 Token 并提高效率:

  • 第一层:元数据层 ------ 始终加载。

    只加载技能名称和描述,模型据此判断是否匹配当前任务。

  • 第二层:指令层 ------ 按需加载。

    匹配成功后,才读取 SKILL.md 中的操作指南。就算装了 100 个技能,对话开始时也不会撑爆上下文。

  • 第三层:资源层 ------ 深度加载。

    包含参考文档(Reference)和执行脚本(Script)。两者有所不同:Reference 是被读取,内容进入上下文供模型参考;Script 是被执行,模型只关心运行结果,不需要读代码本身。

3. 什么是 Vibe Testing ?

简单来说,Vibe Testing 可以理解为:通过 AI 来验证软件是否符合 "预期体验" 的一种测试方式。

它更强调一种 "测试的感觉"------先定义好测试的基调,让 AI 去生成测试场景、模拟用户行为,并关注实际表现是否偏离了预期体验。换句话说,它不只是检查"功能有没有实现",更关注"用起来是不是对"。

相比传统测试更多依赖规则和用例,Vibe Testing 更偏向一种探索式的方式:通过自然语言描述测试意图,让 AI 帮助扩展测试路径,去覆盖那些不容易被事先枚举出来的场景。它关注的,不只是 "有没有做",而是 "是不是应该这样"。

目前,在这个方向上,一些结合 AI 的测试尝试正在逐步出现:

  • 自愈测试(Self-Healing Tests)

    当 UI 发生变化时,传统测试往往需要人工逐一修复脚本。而在 AI 的帮助下,系统可以自动识别元素变化并进行修复,从而降低维护成本,让测试更稳定地运行下去。

  • AI 生成测试(AI-Generated Tests)生成式 AI 可以结合需求文档、用户故事以及历史缺陷数据,自动生成测试用例。在减少人工投入的同时,也能在一定程度上提升测试覆盖的广度。

  • 预测性测试执行(Predictive Test Execution)通过风险分析、历史缺陷数据以及用户行为,AI 可以对测试用例进行优先级排序,让更关键、更高风险的用例优先执行,从而提升测试效率,减少资源浪费。

  • 最后,也是我最关注的一点:Agentic Testing

    在这种模式下,AI 不再只是执行工具,而是开始参与到测试本身中来。它可以主动提出测试思路、识别潜在风险、标记异常情况,而测试人员则把更多精力放在高价值的探索上。

测试不再只是"执行用例",而是变成了一种人与 AI 协同的探索过程。

4. 测试 Skills 实践

4.1 功能用例生成(manual-case-gen)

基于需求文档、设计说明等输入,自动生成结构化的功能测试用例。

目录结构

复制代码
manual-case-gen/
├── SKILL.md                              # 技能入口:工作流程、步骤定义、脚本调用说明
├── references/
│   ├── manual-test-case-gen.md           # 用例生成规范:角色定义、JSON 结构、编写规则
│   └── site-repo-mapping.md              # 站点 → 仓库映射表(含 Git SSH、数据库名)
└── scripts/
    ├── fetch_lark_content.py             # 拉取飞书文档内容(支持图片下载)
    ├── read_xmind_draft.py               # 读取本地 XMind 草稿(支持 Markdown / JSON 输出)
    └── json_to_xmind.py                  # 将用例 JSON 转换并导出为 XMind 文件

用例 JSON 结构

复制代码
[
  {
    "module": "功能模块名称",
    "id": 1,
    "title": "使用非法金额创建订单失败",
    "priority": "High/Medium/Low",
    "type": "Positive/Negative/Boundary",
    "steps": [
      "1、操作步骤描述",
      "2、下一步"
    ],
    "expected_result": "1、预期结果第一点\n2、预期结果第二点"
  }
]

用例 XMind 结构

4.2 接口自动化(api-auto-test)

将需求、设计和接口信息转化为接口自动化测试用例,并与具体站点、仓库和分支打通,最终直接写入接口自动化平台并自动执行。

目录结构

复制代码
api-auto-test/
├── SKILL.md                              # 技能入口:工作流程、步骤定义、版本检测
├── agents/
│   └── case-reviewer.md                  # 复核 SubAgent:格式检查 + 覆盖率检查
├── assets/
│   ├── add_template.json                 # 新增用例的 JSON 模板
│   └── update_template.json              # 更新用例的 JSON 模板
├── references/
│   ├── auto-test-case-gen.md             # 用例生成规范:JSON 结构、编写规则、断言规范
│   └── site-repo-mapping.md              # 站点 → 仓库映射表(含 Git SSH、自动化平台数据库名)
└── scripts/
    ├── fetch_lark_content.py             # 拉取飞书文档内容
    └── add_cases.py                      # 将用例 JSON 写入 接口自动化平台

用例 JSON 结构

复制代码
{
  "batch_id": "batch_20260409143022",
  "items": [
    // 组件定义(可复用的步骤序列)
    {
      "id": "tmp_comp_001",
      "type": "test_comp",
      "name": "登录并获取Token",
      "inputs": [
        {
          "name": "username",
          "value": "example_user",
          "type": "string"
        }
      ],
      "outputs": [
        {
          "name": "token",
          "desc": "登录Token,从调用登录接口提取"
        }
      ],
      "steps": []
    },
    // 用例定义
    {
      "type": "test_suit",
      "title": "正常创建订单并验证落库",
      "steps": [
        {
          "type": "parameters",
          "parameters": [
            {
              "name": "amount",
              "value": "100",
              "type": "number"
            }
          ]
        },
        {
          "type": "comp_ref",
          "ref_id": "tmp_comp_001"
        },
        {
          "type": "test_api",
          "name": "创建订单",
          "url": "http://api.example.com/order/create",
          "method": "POST",
          "body_type": "json",
          "json_body": "{\"amount\":\"$amount\"}",
          "assertions": [
            {
              "path": "data.status",
              "logic": "eq",
              "value": "SUCCESS",
              "part": "body"
            }
          ],
          "extractions": [
            {
              "path": "data.orderId",
              "name": "order_id",
              "part": "body"
            }
          ]
        },
        {
          "type": "test_sql",
          "name": "确认订单状态落库",
          "db": "example_db",
          "query": "SELECT * FROM tb_order WHERE id = '$order_id'",
          "assertions": [
            {
              "path": "[0].status",
              "logic": "eq",
              "value": "1"
            }
          ],
          "extractions": []
        }
      ],
      "post_execute": {
        "name": "清理测试数据",
        "steps": []
      }
    }
  ]
}

写入平台

4.3 缺陷定位提交(bug-diagnose-submit)

将零散的排查信息(日志、SQL、复现步骤、代码定位等)整理为结构化的缺陷描述,并直接生成可提交的缺陷报告和修复建议。结合日志平台 MCP 和 MySQL MCP,Agent 可以直接查询日志和数据库,无需人工复制粘贴,实现从"描述问题"到"定位根因"的全程自动化。

目录结构

复制代码
bug-diagnose-submit/
├── SKILL.md                  # 技能入口:工作流、字段规范、描述写法要求
└── assets/
    └── bug_template.json     # 缺陷 JSON 模板(对应禅道/缺陷系统字段)

输出格式(bug_template.json)

复制代码
{
  "标题": "充值对账金额比较未统一scale导致无法自动对账",
  "优先级": "中",
  "经办人": "待设置",
  "所属": "待设置",
  "缺陷环境": "测试环境",
  "严重程度": "严重",
  "研发负责人": "待设置",
  "测试负责人": "待设置",
  "缺陷类型": "功能缺陷",
  "描述": "问题现象:...\n复现数据:...\n实际结果:...\n预期结果:...\n根因分析:...\n代码位置:...\n修改建议:...\n参考修改代码:..."
}
4.4 测试覆盖率分析(coverage-analysis)

结合覆盖率报告、需求变更和代码差异,识别未覆盖但高风险的改动点。

目录结构

复制代码
coverage-analysis/
├── SKILL.md                  # 技能入口:工作流、覆盖率分析规则
└── scripts/
    └── get_coverage.py       # 拉取差异覆盖率数据(返回各类/方法的 fc/pc/nc 状态)

未覆盖点分三类处理

4.5 性能测试(performance-test-jmx)

自动生成或修复可直接运行的 JMeter .jmx 脚本,覆盖线程组、参数化、断言等核心配置。

降低性能测试的使用门槛,让脚本从"需要手写"变成"可以快速生成和复用"。

目录结构

复制代码
performance-test-jmx/
├── SKILL.md                          # 技能入口:生成规则、兼容性约束、编辑纪律
├── agents/
│   └── openai.yaml                   # OpenAI 兼容接口配置(用于 AI 辅助生成)
└── assets/
    ├── AI Performance Test Plan.jmx  # 可参考的 JMX 模板
    └── repay_accounts.csv            # 参数化数据示例

使用 JMeter GUI 打开

流程串联

有了这些 Skills 之后,人机协作可以贯穿提测准备、自动化补齐、缺陷定位到覆盖率分析等环节,把原本零散的动作串成一条更顺畅的测试工作流。

  • 提测前:生成功能用例

    提供需求文档链接后,Skill 会读取文档内容和原型图,整理出覆盖正常流程、边界条件和异常场景的测试用例,并输出为 XMind 文件,方便评审和执行。

  • 提测后:生成自动化用例并执行

    提供提测文档和分支名后,Agent 会结合代码 diff 分析接口变更和表结构调整,生成包含接口断言和 SQL 落库校验的用例,确认后可直接写入平台执行。

  • 发现缺陷:定位并提交

    将报错信息交给 Agent 后,可结合日志 MCP 和数据库 MCP 查询日志、核对数据,进一步定位问题根因,并整理出缺陷现象、相关数据、根因分析、代码位置和修改建议,形成可直接提交的缺陷报告。

  • 测试完成:覆盖率分析

    结合差异覆盖率报告,Agent 会将未覆盖代码分为三类:正常流程遗漏、可触达的边界场景,以及不可触发的防御性代码。测试重点放在前两类,按需补测,避免无效的全量扫描。

每个环节 Agent 处理信息收集和格式转换,测试同学专注在判断和决策上。

5. 无缝未来

随着 Vibe Coding 逐渐成为常态,软件开发与测试正在被重新定义。开发不再从零开始,测试也不再只是执行与校验,而是逐步演进为一套由 AI 驱动的智能体系。从用自然语言生成代码,到由 Agent 主导端到端的测试生成、执行与反馈,整个研发链路正在被持续压缩与重构。

在这个过程中,Agent Skills + Vibe Testing 不只是工具或方法的升级,更代表了一种新的工作范式------让 AI 进入质量保障的核心环节,使测试从 "被动验证" 走向 "主动进化"。

未来的测试,不再只是发现问题,而是与系统共同演进,持续守护软件质量。

作者简介

相关推荐
朱大喜1 小时前
BI 平台搭建:从数仓到自助分析的实战路径
人工智能
一切皆是因缘际会1 小时前
LLM轻量化联邦微调机理
数据结构·人工智能·数学建模·ai
Lkstar1 小时前
万字长文Query改写与多路召回实战|从HyDE到RRF融合,召回率提升22%的完整方案
数据库·人工智能·llm
星辰AI打工人1 小时前
Agent-Reach 源码级解析:一个 30-200 行的插件系统凭什么治理 14 个平台
人工智能
张彦峰ZYF2 小时前
从嵌入、表征到潜空间:理解大模型向量世界的三种视角
人工智能·大模型·向量空间
咕咕AI学堂2 小时前
Python 异步数据库驱动优化:从连接池到 uvloop 的全链路性能调优
人工智能
老H科研技术2 小时前
第 07 篇:OAuth 2.1 与授权架构 —— AS/RS 分离的正确姿势
人工智能·mcp
闵孚龙2 小时前
PyTorch 系列 之 nn.Module:所有模型的骨架
人工智能·pytorch·python