Cucumber基础Skill:用 Gherkin 语法把需求写成可执行的行为规范
- 定位清晰:Cucumber基础Skill(cucumber-fundamentals)聚焦行为驱动开发(BDD)的核心概念与 Gherkin 语法,帮助团队用「业务能读懂的语言」描述软件行为。
- 内容体系完整:覆盖 Feature、Scenario、Given-When-Then、Background、Scenario Outline、Examples、标签、数据表、文档字符串等关键语法,并给出好与坏场景的对照示例。
- 强调最佳实践:技能内置声明式写法、场景独立性、领域语言、一个场景一个行为等 5 条实践原则,可直接作为团队编写规范的检查清单。
- 降低协作门槛:让产品、测试、开发围绕同一份「活文档」对齐预期,减少需求转译损耗。
- 适用面广:既适合初次接触 BDD 的测试人员,也适合需要统一团队用例风格的研发负责人。
1. 该技能叫什么?如何下载安装 AI 技能提升开发效率?
技能基本信息
| 项目 | 内容 |
|---|---|
| 技能中文名 | Cucumber基础Skill |
| 技能英文名 | cucumber-fundamentals |
| 技能ID | 13968 |
| 技能定位 | 核心 Cucumber 概念、Gherkin 语法与特性文件结构 |
| 调用方式 | 技能描述中标注为 user-invocable: false,即不面向用户直接手动调用,通常由其他技能或工作流在需要 BDD 与 Gherkin 知识时自动引用 |
它解决什么问题
很多团队在引入行为驱动开发时,卡住的往往不是工具本身,而是「不知道场景该怎么写」:把自动化脚本的点击、元素定位写进 Given-When-Then,导致特性文件变成技术脚本,业务方看不懂、维护成本高、需求一变就大改。Cucumber基础Skill 提供的正是这套「写法标准」——从 Gherkin 关键词含义、特性文件结构,到场景大纲、标签、数据表、文档字符串的使用方式,再到声明式与命令式写法的正反示例,帮助使用者在编写或审阅特性文件时有据可依。
一键安装 AI 技能提升开发效率的思路
AI 技能的价值在于「装一次,长期复用」:把这类知识型技能接入你的 AI 编程助手或技能平台后,后续讨论 BDD 场景、评审 Gherkin 用例时,助手可以直接按这套规范输出,而不必每次粘贴大段提示词。通用步骤如下:
- 确认安装前提:你的 AI 开发环境需支持「技能(Skill)」机制,且已具备可用的模型与工作区;具体支持的平台与版本要求以官方说明为准。
- 找到技能入口:在技能市场、技能管理页或配置文件中检索技能ID
13968或英文名cucumber-fundamentals(具体检索入口与命名方式以官方说明为准)。 - 执行安装或启用:按平台提供的安装命令或页面按钮完成安装;若为内置技能,确认其处于启用状态即可。安装命令、依赖与配置项以官方说明为准。
- 验证是否生效:安装后发起一次与 Gherkin 相关的对话,例如让助手「用 Given-When-Then 写一个登录场景」,观察输出是否遵循声明式写法并正确使用 Feature、Scenario、Examples 等结构;若输出符合规范,说明技能已生效。
- 纳入团队规范:将技能产出的写法约定沉淀为团队的特性文件模板与评审清单,形成长期可复用的资产。
说明:技能详情中未提供具体安装命令、下载链接与价格信息,上述流程为通用安装思路,实际操作请以官方说明为准。
2. 该技能的主要功能和特点
- Gherkin 语法全景讲解:系统解释 Feature(特性)、Scenario(场景)、Given(前提)、When(动作)、Then(预期结果)、And/But(连接步骤)、Background(通用前提)、Scenario Outline(场景大纲)、Examples(示例数据表)等关键词的语义与用法。
- 特性文件结构示范:给出完整的特性文件写法,包含特性的业务价值描述(In order to / As a / I want to)与场景组织方式,帮助建立「一份文件讲清一个业务能力」的结构感。
- 参数化测试能力:通过 Scenario Outline 配合 Examples 数据表,用一份模板覆盖多种用户类型、多种权限组合,显著减少重复场景。
- 标签化管理:支持用
@smoke、@authentication、@wip等标签组织与筛选场景,便于按冒烟、回归、进行中等维度分批执行。 - 结构化数据传递:演示用数据表向步骤传递表单类结构化数据,用文档字符串传递多行长文本(如留言内容),覆盖真实业务中的复杂输入。
- 正反示例对照:明确指出「命令式、实现导向」写法的坏处,并给出「声明式、业务导向」的改写示例,是最具实操价值的部分。
- 最佳实践清单:提炼编写声明式场景、保持场景独立、使用领域语言、一个场景一个行为、避免 UI 细节等 5 条原则,可直接作为评审标准。
- 与普通工具的区别:普通测试框架文档侧重「怎么跑起来」,而该技能侧重「怎么写才对」——它把 BDD 的协作理念与可执行规范统一到同一套语言体系中,强调「场景首先是规范,其次才是测试」。
3. 如何使用该技能?
由于该技能不面向用户直接调用,实际使用多发生在「编写、评审、改造 Gherkin 场景」的对话或工作流中。以下是可直接参考的分步指南。
步骤一:明确业务能力,写出特性的价值陈述
先确定要描述的业务能力,再用 Feature 开头,补上角色、目标与价值三行描述。输入示例(自然语言):「帮我为购物车管理写一个特性文件骨架」。期望输出结构:
Feature: 购物车管理
In order to purchase products
As a customer
I want to manage items in my shopping cart
步骤二:用 Background 收敛公共前提
当多个场景共享同一前置条件时,将其提取到 Background,避免每个场景重复书写。例如「我以客户身份登录」「我的购物车为空」。
步骤三:按 Given-When-Then 编写单个场景
遵循「一个场景一个行为」原则。以登录为例:
Scenario: 使用有效凭证成功登录
Given 我位于登录页面
When 我输入有效凭证
And 我点击登录按钮
Then 我应该被重定向到仪表板
And 我应该看到欢迎消息
步骤四:用 Scenario Outline + Examples 消除重复
当同类场景只有数据不同时,改用场景大纲。示例:
Scenario Outline: 使用不同用户类型登录
Given 我位于登录页面
When 我以“<user_type>”身份登录
Then 我应该看到“<dashboard>”仪表板
And 我应该拥有“<permissions>”权限
Examples:
| user_type | dashboard | permissions |
| admin | Admin | full_access |
| user | User | limited_access |
| guest | Public | read_only |
步骤五:用数据表或文档字符串传递复杂输入
表单类数据用数据表,多行文本用文档字符串:
When 我填写注册表单:
| Field | Value |
| First Name | John |
| Last Name | Doe |
| Email | john@example.com |
步骤六:加标签并自查写法质量
为场景补充 @smoke、@wip 等标签,然后用技能的「好与坏场景」标准自查:是否出现了 URL、元素 id、CSS 类名等实现细节?若出现,改写为业务语言。例如把「我找到 id 为 firstName 的元素并清除输入字段」改为「我将我的名字更新为 John」。
输出说明:经过上述流程,你将得到一份业务方可读、测试可执行、结构清晰的特性文件;它既是需求说明,也是自动化测试的输入。
4. 同类型竞品对比分析
| 方案名称 | 定位 | 核心功能 | 安装/使用门槛 | 适用场景 | 优势与不足 |
|---|---|---|---|---|---|
| Cucumber基础Skill(cucumber-fundamentals) | AI 技能形态的 BDD/Gherkin 知识库 | Gherkin 关键词、特性文件结构、场景大纲、标签、数据表、文档字符串、最佳实践与正反示例 | 需支持技能机制的 AI 环境,安装后随对话自动引用,门槛低 | 编写与评审特性文件、统一团队用例风格、新人快速上手 BDD | 优势:规范集中、示例具体、可即时辅助写作;不足:本身不执行测试,需配合实际测试框架 |
| Cucumber 官方文档 | 工具官方知识库 | 语法参考、API、集成方式与运行配置 | 需自行检索阅读,无交互引导 | 查阅权威定义、排查运行问题 | 优势:权威全面;不足:信息量大、偏工具视角,缺乏针对「写法好坏」的即时反馈 |
| 通用 AI 编程助手(无技能加持) | 通用代码与文本生成 | 可生成测试代码与用例文本 | 开箱即用 | 日常编码辅助 | 优势:通用性强;不足:Gherkin 写法风格不稳定,易产出命令式场景,需反复提示纠正 |
| 传统测试管理工具中的用例模板 | 测试用例管理 | 用例字段、执行记录、缺陷关联 | 需部署或订阅,团队协作配置成本较高 | 测试用例归档与执行跟踪 | 优势:流程闭环完整;不足:多偏向步骤化描述,与 BDD 的业务语言和可执行规范存在落差 |
5. 该技能的典型应用场景与实际体验情况
场景一:测试工程师首次编写 BDD 用例
角色为测试工程师,痛点是「知道要写 Given-When-Then,但写出来像操作手册」。使用方式:把业务需求描述给助手,让其按 Gherkin 结构产出场景,再用技能中的「好与坏场景」标准自查改写。实际体验:上手难度低,最大的收获是建立了「声明式优于命令式」的判断标准;注意事项是要主动剔除输出中残留的页面元素、URL 等实现细节。
场景二:产品经理与开发对齐需求验收标准
角色为产品经理,痛点是验收标准写成散文,开发理解有偏差。使用方式:把用户故事转成 Feature + Scenario,让三方在同一份文本上评审。实际体验:沟通成本明显下降,因为「示例优于规则」,具体场景比抽象描述更少歧义;注意事项是需坚持使用领域语言,避免把技术术语塞进业务场景。
场景三:团队统一用例风格与回归分层
角色为测试负责人,痛点是历史用例风格混乱、回归执行无优先级。使用方式:用标签(如 @smoke、@wip)组织场景,用 Scenario Outline 合并同类用例。实际体验:场景数量减少但覆盖不降,回归分层更清晰;注意事项是标签命名需团队约定,否则容易产生同义标签。
场景四:新人培训与代码评审
角色为团队新人,痛点是缺少可参照的范式。使用方式:以技能中的正反示例作为培训材料与评审清单。实际体验:学习曲线更平缓,评审讨论从「我觉得」变成「按规范第几条」;注意事项是规范需与项目实际框架能力匹配,避免写出无法自动化的步骤。
6. 该技能能为用户带来的价值
- 提升编写效率:把 Gherkin 语法、结构模板、数据表与场景大纲写法集中沉淀,减少查文档与反复试错的时间,场景从「想到哪写到哪」变为「按结构填」。
- 降低协作门槛:以业务语言书写的特性文件同时服务产品、测试与开发,需求评审有共同载体,减少转译损耗与返工。
- 提高用例质量:正反示例与 5 条最佳实践提供可执行的判断标准,帮助团队持续产出声明式、独立、单一行为的场景,长期可维护性更好。
- 减少重复劳动:Scenario Outline 与 Examples 让参数化场景一份模板覆盖多组数据,Background 收敛公共前提,用例数量与维护成本同步下降。
- 沉淀长期资产:特性文件作为「活文档」,既是可执行规范也是需求记录,人员流动时知识不随人流失。
- 统一团队标准:把写法约定固化为模板与评审清单,新成员按同一套语言上手,减少风格分歧带来的沟通成本。
7. 常见问题 FAQ
Q1:这个技能怎么安装?装完怎么确认生效?
A:在支持技能机制的 AI 环境中,检索技能ID 13968 或英文名 cucumber-fundamentals 后按平台入口安装或启用即可,具体命令与配置以官方说明为准。验证方式:让助手写一个登录场景,若输出正确使用 Feature、Scenario、Given-When-Then 且为业务语言描述,说明已生效。
Q2:这个技能收费吗?
A:技能详情中未包含价格信息,是否收费取决于你所在平台的计费规则,请以官方说明为准。
Q3:技能标注「不面向用户直接调用」,那我还能用吗?
A:可以。该标注意味着它通常作为知识型技能,在编写或评审 BDD 场景的相关对话与工作流中被自动引用,你无需手动触发,直接提出「帮我写/改一个 Gherkin 场景」即可。
Q4:它和直接用 AI 助手写测试用例有什么区别?
A:通用助手容易产出命令式、含页面元素与 URL 的场景;该技能内置声明式写法、最佳实践与正反示例,输出风格更稳定,更贴近业务可读的规范文本。
Q5:适合谁用?和竞品怎么选?
A:适合测试工程师、产品经理、开发与测试负责人,尤其是正在落地 BDD 或需要统一用例风格的团队。若你需要权威语法与运行配置,查阅官方文档更合适;若你需要「写得对不对」的即时反馈与统一规范,优先使用该技能;若团队已有完整的测试管理流程,可将两者结合使用。