BDD

Ya hemos hablado en post anteriores que cuando hablamos de BDD nos viene a la mente una “forma de automatizar tests”, pero en realidad Behaviour Driven Development va mucho más allá. Esta práctica de ingeniería comprende técnicas y herramientas que aplicamos desde el momento en que levantamos los requerimientos de nuestro producto (no de nuestro test sino de nuestro producto). Puedes consultar esos post aquí:

  • BDD no es solo Gherkin — es conversación entre negocio y técnica (Los 3 amigos) para descubrir requerimientos, evaluar factibilidad, definir criterios de aceptación y hasta detalles de implementación y cómo vamos a probar.
  • Gherkin y su implementación: feature files, steps, step definitions.

BDD fomenta (y a su vez, requiere) la máxima colaboración entre todos los involucrados en el proceso/ciclo de desarrollo de un producto/servicio, no va solo de testing y testers.

En este post vamos a ver una introducción rápida de BDD con links a más recursos y vamos a explorar cómo la IA nos puede ayudar en la implementación de cada una de las prácticas de BDD.

 

Los 3 amigos y Example Mapping

Es una práctica de BDD para descubrir requerimientos en la que participan:

  • Product Owner o equipo de producto.
  • Desarrollador.
  • Tester.

Se usa el Example Mapping para dirigir estas conversaciones. Aquí puedes leer más sobre Example Mapping. Partimos de ejemplos y generamos reglas de negocio.

 

De Ejemplos a Gherkin

Cuando tenemos nuestros ejemplos, diseñamos nuestro escenario de test. Cada escenario tiene pasos que expresamos en lenguaje Gherkin: Given, When, Then, And, and But.

Gherkin es un lenguaje no técnico que puede ser leído por cualquier persona (como lenguaje natural) y que nos permite expresar comportamientos.

Los pasos más importantes son:

  • Given: son las precondiciones para un escenario y preparación del ambiente para ejecutar nuestro test.
  • When: la acción a realizar por el usuario (la acción que vamos a testear).
  • Then: el resultado esperado. ¿Cuál es la respuesta que esperamos de parte del sistema?

 

De Gherkin al Código

Cuando tenemos nuestros tests escritos en Gherkin, podemos convertirlos en especificaciones ejecutables (código fuente). De esta forma podemos automatizar nuestros criterios de aceptación.

Para lograr estas especificaciones ejecutables, usamos:

  • Feature file
  • Page Object Model
  • Step definitions

Aquí puedes profundizar acerca de Gherkin en código fuente siguiendo el mismo caso de estudio de este artículo.

 

Oportunidades de aplicar IA en BDD

Partiendo de que hay de todo en BDD: descubrimiento de requisitos y formulación de criterios de aceptación, y a partir de allí, la creación de pruebas automatizadas, ¿en qué fase, sesión o práctica podríamos aplicar Inteligencia Artificial?

Entre otras cosas, podemos:

  • Pedirle a la IA que actúe como cada uno de los 3 amigos (con los roles de dueño de producto, desarrollador y tester).
  • Traducir reglas de negocio con sus ejemplos en escenarios de prueba escritos en lenguaje Gherkin.
  • Validar Gherkin.
  • Escribir las pruebas automatizadas (implementando los steps y step definitions).

Vale la pena destacar que no significa que la IA sustituye el criterio de los 3 amigos sino que se convierte en el cuarto amigo, ayudándonos a descubrir requerimientos y a escribir y validar nuestras pruebas.

 

Setup

Y ahora sí, manos a la obra. Para desarrollar este ejercicio vamos a usar Claude Code, aunque puedes trasladar estos mismos conceptos, acciones y recursos a cualquier otra herramienta.

 

Pre-requisitos

 

Instalación Paso a Paso

  1. Crear una carpeta en la que vamos a trabajar. Ejemplo: practica-claude-discovery
  2. correr comando claude
  3. correr comando instalar webdriverIO
  4. Salir de claude con el comando exit
  5. Verificar instalación y run de tests corriendo el comando npm run wdio (creado en el achivo package.json).
  6. Crear skill discover. Para crear una skills, creamos una subcarpeta dentro de la carpeta .claude. Este skill no lo escribí yo, lo tomé del repositorio cashback-rewards de John Ferguson Smart, referente de BDD, autor de los libros BDD in Action, primera y segunda edición. Es tan simple como descargar esta carpeta y pegar todo el contenido dentro de la carpeta .claude.

 

Instalación Rápida

También puedes descargar este repositorio creado para este ejercicio (la rama inicial de trabajo es “inicio”) y solo tienes que correr npm install.

 

Discovery de Requerimientos con IA

Para ese ejemplo usaremos la web: https://practice.expandtesting.com/webpark

WebPark es una calculadora de costos de estacionamiento de aeropuerto. Tiene formulario con fecha/hora de entrada y salida, selector de tipo de estacionamiento, y un botón que calcula el costo.

Los 5 tipos de estacionamiento y sus reglas de negocio

TipoReglas
Valet Parking18€/día · 12€ si son 5 horas o menos
Short-Term Parking2€ primera hora · 1€ cada 1/2 hora adicional · máximo 24€/día
Long-Term Garage2€/hora · máximo 12€/día · 72€/semana (7° día gratis)
Long-Term Surface2€/hora · máximo 10€/día · 60€/semana (7° día gratis)
Economy Lot2€/hora · máximo 9€/día · 54€/semana (7° día gratis)

 

De aquí en adelante, mira este video explicativo de cómo usar la Inteligencia Artificial para ayudarnos en el proceso de descubrir requerimientos generando ejemplos, contra-ejemplos, preguntas y reglas que luego vamos a convertir en pruebas Gherkin y en código fuente: