Resumen
- Gherkin es útil en el desarrollo con IA porque convierte la intención de producto, a menudo ambigua, en ejemplos concretos que se pueden revisar.
- Un buen escenario de Gherkin le da a un agente de código con IA tres cosas que necesita: contexto, acción y criterios de éxito observables.
- No uses Gherkin como lenguaje de scripting para la interfaz. Úsalo para describir el comportamiento del negocio en el lenguaje del dominio.
- Gherkin y GitHub Spec Kit resuelven distintas partes del flujo: Spec Kit le da al agente un proceso estructurado de entrega; Gherkin le da a ese proceso ejemplos concretos de aceptación.
- Sí necesitas instalar e inicializar Spec Kit si quieres usar los comandos
/speckit.*. Un archivo.featurepor sí solo es una especificación en un formato convencional, a menos que también lo conectes a Cucumber u otro ejecutor de pruebas. - El mejor flujo no consiste en «escribir Gherkin y dejar que la IA programe todo». Consiste en:
- descubrir ejemplos junto con los equipos de producto, ingeniería y QA
- formular los ejemplos importantes en Gherkin
- pedirle a la IA que implemente la solución a partir de esos ejemplos
- automatizar las pruebas en el nivel adecuado
- mantener los ejemplos actualizados como documentación y protección contra regresiones
- Gherkin encaja de forma natural con métodos modernos como BDD, Specification by Example, ATDD, TDD, Spec-Driven Development, desarrollo con IA guiado por evals y CI/CD.
- El principal riesgo es escribir escenarios demasiado ambiguos, técnicos o extensos, o que no estén conectados con pruebas reales.
El June 9, 2026, revisé fuentes actuales de Cucumber, Agile Alliance, GitHub Spec Kit, Microsoft for Developers y la documentación de evals de OpenAI, así como artículos recientes de profesionales sobre Gherkin para programación asistida por IA. Los enlaces a las fuentes están al final.
Qué aprenderás aquí
Aprenderás:
- por qué Gherkin está ganando utilidad, no perdiéndola, en el desarrollo asistido por IA
- cómo escribir escenarios que ayuden tanto a las personas como a los agentes de código con IA
- dónde encaja Gherkin en BDD, Spec-Driven Development, TDD y flujos de IA guiados por evals
- cómo integrar Gherkin con GitHub Spec Kit sin confundir especificaciones, archivos de features, pruebas y comandos del agente
- cómo pueden colaborar los ingenieros y PMs antes de pedirle a una IA que implemente una funcionalidad
- cómo distinguir entre buenos y malos escenarios de Gherkin para trabajar con IA
- cómo convertir un escenario de Gherkin en tareas de implementación, pruebas y criterios de revisión
Este artículo está dirigido a ingenieros, PMs, ingenieros de QA, gerentes de ingeniería y fundadores con perfil técnico que ya usan agentes de código con IA, o están por hacerlo, en el desarrollo de productos reales.
La idea básica
Las herramientas de programación con IA son muy buenas para generar código.
Son mucho menos eficaces cuando el equipo les da instrucciones ambiguas.
En realidad, no es un problema de IA. Es un problema de requisitos al que se le ha añadido un motor más rápido.
Gherkin ayuda porque crea un pequeño contrato:
Feature: Saved dashboard views
Rule: A user can save a private dashboard view
Scenario: Save a new dashboard view
Given I am viewing a dashboard with active filters
When I save the view as "Executive weekly"
Then I should see "Executive weekly" in my saved views
And the saved view should restore the same filters
Ese escenario no es solo una prueba.
Es un acuerdo conciso entre producto e ingeniería sobre:
- para quién es el comportamiento
- qué estado importa antes de la acción
- qué acción importa
- qué resultado debe ser observable
- qué debe preservar un agente de código con IA durante la implementación
En el desarrollo con IA, ese acuerdo vale oro.
Gherkin no es lo mismo que BDD
Esta distinción importa.
BDD es el método de colaboración.
Gherkin es uno de los lenguajes que los equipos pueden usar para expresar ejemplos surgidos de esa colaboración.
La documentación actual de Cucumber sobre BDD lo describe como una forma de cerrar la brecha entre las personas de negocio y las técnicas: construir un entendimiento compartido, trabajar en iteraciones pequeñas y producir documentación del sistema que se pueda contrastar con su comportamiento.
Esa es la parte importante: primero el entendimiento compartido, después la automatización.
Si un equipo omite la conversación y solo le pide a una IA que genere archivos .feature, en realidad no está haciendo BDD. Está generando suposiciones con formato.
Por qué Gherkin ayuda en el desarrollo con IA
Los agentes de IA necesitan límites.
Sin ellos, tienden a llenar los vacíos con suposiciones plausibles:
- «¿Esto debería ser privado o compartido?»
- «¿Se deberían permitir nombres duplicados?»
- «¿Eliminar una vista guardada debería eliminar el dashboard subyacente?»
- «¿Este comportamiento se debería probar a través de la API, la interfaz o la capa de pruebas unitarias?»
Gherkin reduce esas suposiciones implícitas al convertir el comportamiento en ejemplos.
Esta es la diferencia en la práctica:
vague prompt
-> "Build saved dashboard views"
-> AI guesses product rules
-> reviewer finds mismatches late
gherkin-backed prompt
-> examples define behavior
-> AI implements against explicit scenarios
-> reviewer checks code against agreed examples
El valor no está en que Gherkin sea mágico.
Está en que los ejemplos concretos son más fáciles de analizar tanto para las personas como para los modelos que los requisitos abstractos.
El flujo de trabajo moderno
Este es el flujo que recomiendo a los equipos que usan herramientas de programación con IA:
product intent
-> example mapping
-> Gherkin scenarios
-> AI implementation plan
-> code + tests
-> CI checks
-> human review
-> living documentation
En términos más operativos:
PM / domain expert
explains the user need
PM + engineer + QA
discover rules, examples, and questions
engineer + QA
formulate key examples in Gherkin
AI coding agent
creates an implementation plan and code changes
test suite
verifies behavior at the right level
reviewer
checks whether the code still matches the examples
Este flujo mantiene a la IA en el rol adecuado.
No es la responsable de producto.
No es la fuente de verdad.
Es una colaboradora rápida para la implementación que trabaja a partir de un contrato más claro.
Comienza con el mapeo de ejemplos
Antes de escribir Gherkin formal, realiza una breve sesión de mapeo de ejemplos.
El equipo de Cucumber describe el mapeo de ejemplos como una forma ligera de registrar:
- la historia
- las reglas
- ejemplos para cada regla
- preguntas sin resolver
- historias de seguimiento que conviene separar
Esto es especialmente útil en el desarrollo con IA porque las preguntas sin resolver son precisamente los espacios donde las herramientas de IA tienden a inventar respuestas.
Ejemplo:
Story:
Users can save dashboard views.
Rules:
- A saved view belongs to the user who created it.
- A saved view restores filters, columns, and sort order.
- Saved view names must be unique per user.
Examples:
- The one where Ana saves a dashboard with two filters.
- The one where Ana tries to reuse an existing saved view name.
- The one where Ben cannot see Ana's private saved view.
Questions:
- Should admins see users' private saved views?
- Is there a maximum number of saved views per user?
- Do saved views include relative dates like "last 7 days"?
Observa el punto clave: todavía no necesitas un Gherkin perfecto.
Necesitas que el equipo identifique las reglas y las preguntas antes de que la IA comience a implementar.
Después, escribe Gherkin preparado para la IA
Un buen Gherkin para trabajar con IA es:
- concreto
- breve
- observable
- escrito en lenguaje de producto
- enfocado en un solo comportamiento
- independiente de los detalles de implementación
Un mal Gherkin para trabajar con IA es:
- ambiguo
- sobrecargado
- escrito como un script de interfaz que describe cada clic
- lleno de detalles de la base de datos
- diseñado para cubrir cinco comportamientos en un solo escenario
Compara estas dos versiones.
Escenario débil
Scenario: User saves dashboard
Given the user is on the page
When the user clicks save
Then it works
La IA puede generar casi cualquier cosa a partir de esto.
Quien revise el resultado no puede saber qué significa «funciona».
Mejor escenario
Scenario: Save a dashboard view with active filters
Given I am viewing the revenue dashboard filtered by region "LATAM"
And the table is sorted by "Closed revenue" descending
When I save the view as "LATAM revenue"
Then "LATAM revenue" should appear in my saved views
And opening "LATAM revenue" should restore the region filter
And the table should still be sorted by "Closed revenue" descending
Esto le da a la IA un contrato real.
Aun así, no dicta si la implementación usa estado de React, una tabla SQL, un endpoint de API o una caché. Esas decisiones pertenecen al plan técnico.
Patrón de prompt: dale a la IA el escenario y las reglas
Una vez que el equipo acuerde el comportamiento, dale a la IA un prompt con el escenario y las restricciones.
You are implementing the saved dashboard views feature.
Use these Gherkin scenarios as the acceptance contract:
Feature: Saved dashboard views
Rule: Saved views are private per user
Scenario: User saves a private dashboard view
Given Ana is viewing the revenue dashboard filtered by region "LATAM"
When Ana saves the view as "LATAM revenue"
Then Ana should see "LATAM revenue" in her saved views
And Ben should not see "LATAM revenue" in his saved views
Implementation instructions:
- First inspect the existing dashboard, auth, and persistence patterns.
- Propose a short plan before editing files.
- Add tests that map to each scenario.
- Prefer API or integration tests for business rules.
- Keep UI tests focused on the user-visible flow.
- Do not introduce a new persistence abstraction unless the repo already uses that pattern.
Este prompt hace cuatro cosas útiles:
- le da a la IA ejemplos de comportamiento
- separa el comportamiento de las instrucciones de implementación
- le indica a la IA que revise los patrones existentes
- hace que las pruebas sean parte de la tarea, no una ocurrencia posterior
Dónde encaja Gherkin con otras metodologías modernas
Gherkin es más útil cuando forma parte de un sistema de entrega más amplio.
No debería reemplazar todas las demás prácticas de planificación y pruebas.
BDD
BDD usa conversaciones, ejemplos y automatización para alinear a producto e ingeniería.
Gherkin es una herramienta eficaz para formular ejemplos en BDD porque los PMs pueden leerlo y los frameworks de pruebas pueden ejecutarlo.
Úsalo cuando el comportamiento requiera un entendimiento compartido entre distintos roles.
Specification by Example
Specification by Example es la idea más amplia de describir requisitos mediante ejemplos concretos en lugar de hacerlo solo con enunciados abstractos.
Gherkin es una sintaxis común para esos ejemplos.
Úsalo cuando el dominio tenga reglas, excepciones y casos límite.
ATDD
Acceptance Test-Driven Development comienza con los criterios de aceptación antes de la implementación.
Gherkin encaja bien porque cada escenario puede convertirse en una prueba de aceptación o en una lista de verificación para la revisión.
Úsalo cuando sea necesario definir explícitamente qué significa «terminado» antes de comenzar a programar.
TDD
TDD funciona en un nivel más bajo.
Un escenario de Gherkin podría decir:
Then the saved view should restore the same filters
La implementación podría requerir varias pruebas unitarias para:
- serializar el estado de los filtros
- validar los nombres de los filtros
- cargar una vista guardada de un usuario
- rechazar el acceso de otro usuario
Gherkin describe el comportamiento. TDD ayuda a diseñar el código interno.
Spec-Driven Development
GitHub Spec Kit popularizó una versión moderna de la entrega guiada por especificaciones, adecuada para trabajar con IA: define lo que quieres, acláralo, planifícalo, genera tareas y luego implementa.
Gherkin encaja en ese flujo como la capa de ejemplos de aceptación.
Spec Kit style workflow
-> feature spec
-> clarification
-> plan
-> tasks
-> implementation
Gherkin contribution
-> concrete examples
-> business rules
-> acceptance checks
-> regression scenarios
En otras palabras, Spec-Driven Development aporta la estructura de entrega. Gherkin aporta precisión a nivel de comportamiento.
Cómo integrar Gherkin con GitHub Spec Kit
Esta parte puede resultar confusa al principio, así que separemos los componentes.
Spec Kit es una herramienta de flujo de trabajo.
Le da a tu agente de código con IA comandos y plantillas para avanzar por el proceso de entrega:
constitution
-> specify
-> clarify
-> plan
-> tasks
-> analyze
-> implement
Gherkin es un formato para describir comportamiento.
Le da a tu equipo una forma legible de expresar ejemplos:
Feature
-> Rule
-> Scenario
-> Given / When / Then
Funcionan mejor juntos cuando Spec Kit se encarga del flujo de entrega y Gherkin de los ejemplos de aceptación.
¿Necesitas instalar Spec Kit?
Sí, si quieres usar el flujo de trabajo de Spec Kit.
Según el README actual de Spec Kit, el camino estándar es:
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@vX.Y.Z
specify init my-project --integration copilot
cd my-project
La integración exacta puede variar según el agente. El README también indica que la mayoría de los agentes exponen comandos como /speckit.*, mientras que algunas integraciones exponen skills del agente en lugar de archivos de prompts para comandos con barra.
Después de la inicialización, tu agente puede usar comandos como:
/speckit.constitution
/speckit.specify
/speckit.clarify
/speckit.plan
/speckit.tasks
/speckit.analyze
/speckit.implement
Así que la respuesta corta es:
Want Spec Kit commands and generated artifacts?
-> install and initialize Spec Kit.
Only want to write acceptance examples in Gherkin?
-> no Spec Kit install required.
¿Un archivo de Gherkin es solo un archivo con un formato convencional?
Depende de cómo lo uses.
Un archivo .feature puede cumplir tres funciones distintas:
| Uso | ¿Requiere instalación? | Qué hace |
|---|---|---|
| Especificación de aceptación simple | No | Las personas y los agentes de IA lo leen como requisitos |
| Entrada o contexto para Spec Kit | Spec Kit sí, Cucumber no | El agente lo usa al especificar, planificar e implementar |
| Prueba BDD ejecutable | Cucumber o equivalente sí | Un ejecutor de pruebas vincula los pasos con código y verifica el comportamiento |
Esta distinción es importante.
Si creas este archivo:
features/saved-dashboard-views.feature
pero no instalas Cucumber, Playwright-BDD, Behave, SpecFlow, pytest-bdd u otro ejecutor, nada lo ejecutará automáticamente.
Aun así, es útil. Puede ser un contrato de aceptación compartido.
Pero todavía no es una prueba automatizada.
Para hacerlo ejecutable, necesitas un framework de pruebas y definiciones de pasos:
features/saved-dashboard-views.feature
-> step definitions
-> app/test driver
-> assertions
-> CI result
Para la entrega asistida por IA, normalmente recomiendo comenzar con el archivo .feature como contrato legible y después automatizar solo los escenarios que merezcan cobertura de regresión.
Un flujo práctico con Spec Kit + Gherkin
Este es un flujo claro para un equipo real.
1. Initialize Spec Kit
-> install specify-cli
-> run specify init with your agent integration
2. Establish principles
-> /speckit.constitution
-> define quality, testing, security, UX, and review standards
3. Define the feature
-> /speckit.specify
-> describe what and why
-> include Gherkin scenarios as acceptance examples
4. Clarify uncertainty
-> /speckit.clarify
-> turn vague scenario outcomes into decisions or out-of-scope notes
5. Plan implementation
-> /speckit.plan
-> choose architecture, data model, API shape, UI approach, and test strategy
6. Generate tasks
-> /speckit.tasks
-> ensure each important scenario maps to a task, test, eval, or manual check
7. Analyze consistency
-> /speckit.analyze
-> catch gaps between spec, plan, tasks, and acceptance examples
8. Implement
-> /speckit.implement
-> build against the spec and scenarios
La clave es introducir Gherkin en /speckit.specify y mantenerlo presente durante /speckit.tasks y /speckit.analyze.
Qué incluir en la especificación de la funcionalidad de Spec Kit
Dentro de la especificación de la funcionalidad generada por Spec Kit, incluiría una sección como esta:
## Acceptance Examples
```gherkin
Feature: Saved dashboard views
Rule: Saved views are private per user
Scenario: User saves a private dashboard view
Given Ana is viewing the revenue dashboard filtered by region "LATAM"
When Ana saves the view as "LATAM revenue"
Then Ana should see "LATAM revenue" in her saved views
And Ben should not see "LATAM revenue" in his saved views
Rule: Saved view names are unique per user
Scenario: User tries to reuse a saved view name
Given Ana already has a saved view named "LATAM revenue"
When Ana saves another view as "LATAM revenue"
Then Ana should be asked to choose a different name
```
Después, añade una tabla de trazabilidad:
## Acceptance Traceability
| Scenario | Verification |
| --- | --- |
| User saves a private dashboard view | API integration test + one E2E happy path |
| User tries to reuse a saved view name | API integration test |
| Different users use the same saved view name | API integration test |
| Admin visibility for private views | Out of scope until product decision |
Esa tabla es muy útil para los agentes de código con IA porque le indica al agente dónde debería estar la evidencia de que se cumple cada escenario.
Ejemplo de prompt para /speckit.specify
Usa un prompt como este:
/speckit.specify
Build saved dashboard views for authenticated users.
Goal:
Users should be able to save useful dashboard filter setups and return to them later.
Business rules:
- Saved views are private per user.
- Saved view names must be unique per user.
- Saved views restore filters, visible columns, and sort order.
- Deleting a saved view must not delete the underlying dashboard.
Acceptance examples:
Feature: Saved dashboard views
Rule: Saved views are private per user
Scenario: User saves a private dashboard view
Given Ana is viewing the revenue dashboard filtered by region "LATAM"
When Ana saves the view as "LATAM revenue"
Then Ana should see "LATAM revenue" in her saved views
And Ben should not see "LATAM revenue" in his saved views
Rule: Saved view names are unique per user
Scenario: User tries to reuse a saved view name
Given Ana already has a saved view named "LATAM revenue"
When Ana saves another view as "LATAM revenue"
Then Ana should be asked to choose a different name
Open questions:
- Should admins see users' private saved views?
- Is there a maximum number of saved views per user?
- Do relative dates like "last 7 days" resolve dynamically when reopened?
Do not answer open questions by guessing. Mark them for clarification or explicitly out of scope.
Esto le da a Spec Kit suficiente contexto sobre la intención de producto para crear la especificación de la funcionalidad, a la vez que conserva los ejemplos de comportamiento que el equipo ya acordó.
¿Puede Spec Kit generar escenarios de Gherkin automáticamente?
Sí, pero con una advertencia importante.
Spec Kit no necesita un «generador de Gherkin» especial para hacerlo. Durante /speckit.specify o /speckit.clarify, el agente de IA puede redactar escenarios de Gherkin a partir del brief de producto, las reglas de negocio, los ejemplos y las preguntas abiertas que le proporciones.
Eso significa que esto es posible:
product brief
-> /speckit.specify
-> generated feature spec
-> generated draft Gherkin scenarios
-> human review
-> clarified acceptance scenarios
Pero los escenarios generados deben tratarse como borradores de ejemplos de aceptación, no como la verdad definitiva.
La IA puede inferir casos útiles, pero también puede inventar reglas de producto que suenan razonables y son completamente incorrectas.
Un buen prompt es:
/speckit.specify
Create the feature spec and draft Gherkin acceptance scenarios.
Rules:
- Generate scenarios only from the provided business rules and examples.
- If a scenario requires an unstated product rule, put it under "Candidate scenarios needing clarification."
- Separate must-have scenarios from edge cases.
- Do not invent limits, roles, permissions, data retention rules, or admin behavior.
- Add open questions for anything ambiguous.
Output sections:
1. Feature summary
2. Business rules
3. Draft Gherkin scenarios
4. Candidate scenarios needing clarification
5. Open questions
Después, usa /speckit.clarify para afinar los escenarios generados:
/speckit.clarify
Review the draft Gherkin scenarios.
For each scenario:
- identify any hidden assumption
- ask a clarification question if the behavior is not explicit
- mark the scenario as accepted, revised, split, or removed
- move speculative behavior out of acceptance criteria
Esto crea un flujo más saludable:
AI drafts scenarios
-> humans reject bad assumptions
-> clarify missing rules
-> accepted scenarios become the contract
-> plan and tasks trace back to accepted scenarios
La regla que usaría es sencilla:
AI-generated Gherkin is allowed.
AI-approved Gherkin is not.
Alguien con autoridad sobre el producto o el dominio debe revisar los ejemplos antes de que la implementación los trate como criterios de aceptación.
Usa esta lista de verificación antes de aceptar escenarios generados:
[ ] Does each scenario come from a known business rule?
[ ] Does each scenario have one clear When action?
[ ] Are expected results observable by a user, API, test, or eval?
[ ] Did the AI invent roles, limits, permissions, defaults, or error states?
[ ] Are uncertain scenarios separated from accepted scenarios?
[ ] Can the team map each accepted scenario to a test, eval, or manual check?
Así que sí, la generación automática es útil.
Solo mantén una etapa de revisión entre los escenarios generados y la implementación.
Ejemplo de prompt para /speckit.plan
Después de la etapa de aclaración, usa los escenarios de Gherkin para dar forma al plan técnico:
/speckit.plan
Plan the implementation using the existing stack and repository conventions.
Testing strategy:
- Map each acceptance scenario to a verification method.
- Use API or integration tests for privacy and uniqueness rules.
- Use one E2E test for the happy path of saving and reopening a view.
- Do not automate unresolved questions.
Traceability requirement:
The plan should include a table mapping each Gherkin scenario to:
- implementation area
- test level
- file or test location
- owner of unresolved product decisions
Esto evita que el plan se convierta en un diseño técnico genérico.
Lo mantiene anclado al comportamiento.
Ejemplo de prompt para /speckit.tasks
La generación de tareas es donde muchos flujos de IA pierden el rumbo.
Pide tareas vinculadas a los escenarios:
/speckit.tasks
Generate implementation tasks from the plan.
Requirements:
- Group tasks by acceptance scenario when possible.
- Include tests beside the implementation tasks they verify.
- Add a final traceability task that checks every Gherkin scenario has proof.
- Keep unresolved questions out of implementation tasks unless clarified.
El resultado debería verse así:
Scenario: User saves a private dashboard view
[ ] Add persistence model scoped by user ID
[ ] Add create saved view API endpoint
[ ] Add saved views list API endpoint filtered by current user
[ ] Add integration test proving Ben cannot see Ana's saved view
[ ] Add UI flow for save and reopen
[ ] Add E2E happy-path test
Scenario: User tries to reuse a saved view name
[ ] Add uniqueness constraint per user
[ ] Return validation error for duplicate names
[ ] Add integration test for duplicate name rejection
Ahora la IA no solo está generando una lista de tareas.
Está generando una lista de tareas vinculadas al comportamiento.
Dónde deberían estar los archivos
Una estructura práctica del repositorio puede verse así:
.specify/
memory/
constitution.md
specs/
001-saved-dashboard-views/
spec.md
plan.md
tasks.md
features/
saved-dashboard-views.feature
tests/
integration/
saved-dashboard-views.test.ts
e2e/
saved-dashboard-views.spec.ts
Usa specs/ para los artefactos de Spec Kit.
Usa features/ para escenarios de Gherkin duraderos si tu equipo quiere que sean visibles fuera de la especificación generada.
Usa tests/ para las pruebas ejecutables.
Esa separación evita una confusión común:
spec.md
explains the feature
.feature
expresses examples
test files
execute verification
Mi recomendación
Empieza de forma sencilla:
Week 1:
Use Gherkin inside Spec Kit specs as acceptance examples.
Do not install Cucumber yet.
Week 2:
Require scenario-to-test traceability in /speckit.tasks.
Automate key scenarios with normal test tools.
Week 3+:
If the team likes executable Gherkin, add Cucumber or a BDD runner.
If not, keep Gherkin as readable acceptance specs and automate behavior at API/E2E levels.
Este es el camino pragmático.
No empieces instalando todas las herramientas de BDD.
Empieza haciendo que la IA implemente a partir de mejores ejemplos.
Desarrollo con IA guiado por evals
Cuando el producto en sí incluye comportamiento de un LLM, Gherkin también puede servir de inspiración para casos de eval.
La documentación de evals de OpenAI describe las evals como pruebas estructuradas para comprobar si las respuestas de la IA cumplen criterios de estilo y contenido, y compara explícitamente el proceso con BDD: especificar el comportamiento esperado, ejecutar entradas de prueba, analizar los resultados e iterar.
Por ejemplo:
Feature: Support ticket classifier
Rule: Billing questions are routed to the billing queue
Scenario: Customer asks about an invoice charge
Given a support ticket says "Why was I charged twice this month?"
When the AI classifies the ticket
Then the category should be "Billing"
And the confidence should be high enough for automatic routing
Ese escenario podría no convertirse en una prueba de navegador con Cucumber.
Podría convertirse en una fila de un dataset de evals:
{
"input": "Why was I charged twice this month?",
"expected_category": "Billing",
"minimum_confidence": 0.8
}
El principio es el mismo: define el comportamiento esperado antes de confiar en la automatización.
Cómo elegir el nivel de prueba adecuado
No todos los escenarios de Gherkin deberían convertirse en pruebas de extremo a extremo.
Esa es una de las formas más fáciles de crear una suite lenta y frágil.
Usa esta guía:
| Comportamiento | Nivel de prueba más adecuado |
|---|---|
| Cálculo o transformación pura | Prueba unitaria |
| Regla de autorización o de flujo de trabajo | Prueba de integración/API |
| Recorrido crítico del usuario | Prueba E2E |
| Calidad de la respuesta de un LLM | Eval |
| Diseño visual | Prueba de regresión visual o de componentes |
| Contrato entre servicios | Prueba de contrato |
El escenario de Gherkin es el ejemplo expresado en términos de negocio.
La automatización puede estar en el nivel que ofrezca la mejor señal con el menor costo de mantenimiento.
Un patrón práctico para el repositorio
Para un equipo que trabaja con asistencia de IA, me gusta esta estructura:
features/
saved-dashboard-views.feature
docs/specs/
saved-dashboard-views.md
tests/
integration/
saved-dashboard-views.test.ts
e2e/
saved-dashboard-views.spec.ts
evals/
support-ticket-routing.jsonl
El archivo .feature explica el comportamiento.
La especificación explica el alcance, las decisiones y las preguntas abiertas.
Las pruebas verifican el comportamiento determinista del software.
Las evals verifican el comportamiento probabilístico de la IA.
Esto les da tanto a las personas como a los agentes de IA un mejor mapa del sistema.
Lista de verificación para revisar código generado por IA
Cuando un PR se creó a partir de escenarios de Gherkin, revísalo contra los ejemplos.
[ ] Does each scenario map to at least one test, eval, or explicit manual check?
[ ] Did the AI preserve the business language from the scenario?
[ ] Are the tests checking observable outcomes instead of implementation details?
[ ] Did the implementation add behavior not covered by the examples?
[ ] Did the AI invent answers to unresolved product questions?
[ ] Are edge cases represented as separate scenarios instead of hidden in one big scenario?
[ ] Can a PM or QA read the examples and understand the behavior?
La falla más peligrosa no es una sintaxis incorrecta.
La falla más peligrosa ocurre cuando la IA implementa una funcionalidad razonable que no es la que el equipo acordó crear.
Antipatrones comunes
Antipatrón 1: Gherkin como script de interfaz
Scenario: Save view
Given I click the dashboard menu
And I click the three dots
And I click the input
And I type "LATAM revenue"
When I click the blue save button
Then I see a toast
Esto es frágil.
Le dice demasiado a la IA sobre la interfaz y muy poco sobre el comportamiento del negocio.
Prefiere:
Scenario: Save a named dashboard view
Given I am viewing the revenue dashboard filtered by region "LATAM"
When I save the view as "LATAM revenue"
Then "LATAM revenue" should appear in my saved views
Antipatrón 2: un escenario gigante
Si un escenario tiene varios pasos When y varios resultados, probablemente contiene varios comportamientos.
Divídelo.
one rule
-> one behavior
-> one scenario
-> one clear expected result
Antipatrón 3: ejemplos de relleno generados por IA
Las herramientas de IA suelen generar relleno:
Scenario: Valid input
Scenario: Invalid input
Scenario: Edge case
Exige ejemplos reales:
Scenario: Reject a duplicate saved view name for the same user
Scenario: Allow the same saved view name for different users
Scenario: Restore a relative date filter when opening a saved view tomorrow
Antipatrón 4: tratar Gherkin como la verdad definitiva
Los escenarios de Gherkin solo son útiles si reflejan las decisiones actuales de producto.
Si la implementación cambia el comportamiento, actualiza los ejemplos.
Si los ejemplos revelan una regla de producto incorrecta, cambia la regla.
La documentación viva debe mantenerse viva.
Un pequeño ejemplo de principio a fin
Imagina que un PM escribe esta solicitud:
Users should be able to save dashboard views so they can return to useful filter setups later.
Después del mapeo de ejemplos, el equipo identifica:
Rules:
- saved views are private per user
- names must be unique per user
- saved views restore filters and sort order
- deleting a view does not delete the dashboard
Questions:
- should saved views be shareable later?
- should admins see private views?
El equipo escribe:
Feature: Saved dashboard views
Rule: Saved views are private per user
Scenario: User saves a private dashboard view
Given Ana is viewing the revenue dashboard filtered by region "LATAM"
When Ana saves the view as "LATAM revenue"
Then Ana should see "LATAM revenue" in her saved views
And Ben should not see "LATAM revenue" in his saved views
Rule: Saved view names are unique per user
Scenario: User tries to reuse a saved view name
Given Ana already has a saved view named "LATAM revenue"
When Ana saves another view as "LATAM revenue"
Then Ana should be asked to choose a different name
Scenario: Different users use the same saved view name
Given Ana has a saved view named "LATAM revenue"
When Ben saves a view as "LATAM revenue"
Then Ben's saved view should be created
Luego, el ingeniero le pide a la IA:
Implement the feature described in this Gherkin.
Before editing:
- inspect current dashboard state management
- inspect auth/user scoping patterns
- inspect existing API test patterns
- propose a file-level plan
During implementation:
- add API or integration tests for privacy and duplicate-name rules
- add one E2E test for the happy path
- do not implement sharing or admin visibility; those are unresolved future questions
Esa última línea importa.
Evita que la IA convierta preguntas abiertas en alcance no previsto.
Cómo pueden usarlo los PMs sin convertirse en ingenieros de pruebas
Los PMs no necesitan escribir Gherkin perfecto.
Necesitan ayudar a aportar:
- ejemplos realistas
- reglas de negocio
- casos de excepción
- palabras que los usuarios reconocerían
- respuestas a preguntas de producto
Un PM puede comenzar con esto:
The one where Ana saves a LATAM revenue view.
The one where Ana tries to reuse the same name.
The one where Ben cannot see Ana's view.
The one where Ana deletes the saved view but the dashboard remains.
Después, ingeniería y QA pueden convertir los ejemplos importantes en Gherkin formal.
Esa es una división de trabajo saludable.
Cómo pueden usarlo los ingenieros sin perder velocidad
Los ingenieros no necesitan convertir cada ticket en una ceremonia.
Usa Gherkin cuando:
- la funcionalidad tiene reglas de producto
- varios roles necesitan acordar el comportamiento
- el agente de IA podría hacer suposiciones peligrosas
- el flujo de trabajo abarca varios componentes
- las regresiones serían costosas
- la funcionalidad incluye comportamiento de un LLM que necesita evals
Omite el Gherkin formal cuando:
- el cambio es una refactorización puramente interna
- el comportamiento ya está cubierto por pruebas claras
- la tarea es una corrección mecánica pequeña
- el costo de escribir escenarios es mayor que el riesgo de ambigüedad
El objetivo es entregar mejor, no seguir un ritual.
Acuerdo recomendado para el equipo
Para equipos que usan agentes de código con IA, propondría este acuerdo ligero:
For every non-trivial user-facing feature:
1. Capture rules, examples, and open questions before implementation.
2. Write Gherkin for the scenarios that define done.
3. Mark unresolved questions as out of scope until answered.
4. Give the AI the scenarios as the acceptance contract.
5. Require tests, evals, or manual checks that map back to the scenarios.
6. Review the PR against the scenarios, not only against the diff.
Es lo suficientemente sencillo para ponerlo en práctica.
También es lo suficientemente sólido para evitar muchos errores en la entrega asistida por IA.
Brechas actuales y oportunidades de mejora
La principal brecha en la conversación actual sobre desarrollo con IA es que los equipos hablan mucho de modelos y herramientas, pero no lo suficiente de contratos de comportamiento.
Gherkin puede ayudar, pero todavía hay preguntas abiertas:
- ¿Cómo deberían mantener los equipos sincronizados los archivos
.feature, las especificaciones, las pruebas y los datasets de evals a lo largo del tiempo? - ¿Qué escenarios merecen automatización E2E y cuáles deberían mantenerse como pruebas de API, pruebas unitarias o verificaciones manuales?
- ¿Cómo deberían informar los agentes de IA la trazabilidad desde el escenario hasta el código y la prueba?
- ¿Pueden los agentes de código detectar de forma confiable cuándo un escenario es demasiado ambiguo o demasiado específico de la implementación?
- ¿Cómo deberían revisar los PMs el Gherkin generado por IA sin tener que involucrarse en la sintaxis de las herramientas?
Esas serían buenas secciones para un artículo posterior más profundo.
Mi recomendación práctica
Usa Gherkin como la capa de comportamiento de tu flujo de desarrollo con IA.
No lo conviertas en todo el flujo.
El patrón más sólido es:
BDD / Example Mapping
gives shared understanding
Gherkin
captures concrete behavior
Spec-Driven Development
organizes the implementation path
TDD / integration tests / E2E tests
verify deterministic software behavior
Evals
verify probabilistic AI behavior
CI/CD
keeps the whole thing honest
Si solo haces una cosa, haz esto:
Antes de pedirle a un agente de IA que implemente una funcionalidad, escribe tres ejemplos de cómo debería comportarse y un ejemplo de lo que no debe hacer.
Ese pequeño hábito mejorará tus prompts, tus pruebas, tus revisiones y tus conversaciones de producto.
Lista de fuentes
- Cucumber, “Behaviour-Driven Development” - https://cucumber.io/docs/bdd/
- Cucumber, “Gherkin Reference” - https://cucumber.io/docs/gherkin/reference/
- Cucumber, “Introducing Example Mapping” - https://cucumber.io/blog/bdd/example-mapping-introduction/
- Agile Alliance, “Behavior Driven Development (BDD)” - https://agilealliance.org/glossary/bdd/
- GitHub, repositorio “Spec Kit” - https://github.com/github/spec-kit
- GitHub Blog, “Spec-driven development with AI: Get started with a new open source toolkit” - https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/
- Microsoft for Developers, “Diving Into Spec-Driven Development With GitHub Spec Kit” - https://developer.microsoft.com/blog/spec-driven-development-spec-kit
- OpenAI API Docs, “Evaluation best practices” - https://developers.openai.com/api/docs/guides/evaluation-best-practices
- OpenAI API Docs, “Working with evals” - https://developers.openai.com/api/docs/guides/evals
- Automation Panda, “BDD Gherkin Guidelines for AI Coding and Testing” - https://automationpanda.com/2026/04/27/bdd-gherkin-guidelines-for-ai-coding-and-testing/
- Automation Panda, “BDD 101: Writing Good Gherkin” - https://automationpanda.com/2017/01/30/bdd-101-writing-good-gherkin/