BDD (behaviour-driven development) testing y Behat.

En este entrada haremos una pequeña introducción a los conceptos básicos del BDD y de la principal herramienta de BDD en PHP, Behat

¿Qué es BDD?

El Desarrollo guiado por comportamiento o BDD es una técnica de desarrollo ágil de software que fomenta la colaboración entre los clientes, los desarrolladores y los ingenieros de calidad. Podemos considerarlo una evolución del Desarrollo guiado por los tests (TDD) en el que el énfasis se pone más en las especificaciones finales del software antes que en sus detalles técnicos.

¿Qué es Gherkin?

El lenguaje Gherkin define la estructura y una sintaxis básica para la descripción de las pruebas que pueden ser entendidas tanto por los integrantes técnicos del equipo como por el cliente. De esta manera mientras se generan pruebas se está generando documentación dinámica que define el comportamiento del sistema, mejorando y manteniendo la documentación.

¿Qué es Behat?

Behat es la herramienta BDD más utilizada para el lenguaje PHP. Se trata de un proyecto inspirado en Cucumber, que es capaz de interpretar nuestras características y escenarios usando el mismo formato que Gherkin.

Behat es un ejecutable a través de línea de comando para ejecutar las pruebas definidas en nuestras características

¿Que es una Característica?

El elemento Característica (feature) proporciona el encabezado y descripción para el archivo Feature. Tiene un título y un texto con una descripción de alto nivel de la función de la funcionalidad que se detalla en el archivo. Contiene el listado de escenarios que componen el feature, los cuales se pueden agrupar por tags (por ejemplo: @regresion)

Un ejemplo de característica podría ser:

behatfeature

¿Que es un Escenario?

Un Scenario es una lista de pasos que comienza con algunas de estas palabras claves:

  • Given (|Dado|Dada|Dados|Dadas)
  • When (Cuando)
  • Then (Entonces)
  • But (Pero) o And (Y)

Continuando con la característica creada antes, vamos a añadir al final de esta un escenario:

behatscenario

Cada característica está definida por uno o más escenarios. Como vemos en el ejemplo, se puede añadir condiciones a través de las palabras clave And y But.

Ejecutando Behat

Una vez que hayamos definido una característica y un escenario, ya podremos ejecutar Behat. Si todo fue bien, veremos por consola algo como lo siguiente:

executionbehat

 

Escribiendo la definición de los pasos

Como vemos en la ejecución anterior, Behat nos indica que hay 7 pasos no definidos. Behat  intenta ejecutar el Escenario como una prueba. Sin embargo, no le hemos dicho a Behat que hacer con instrucciones como Given I am on «login page», por lo tanto se produce un error. Behat trabaja haciendo coincidir cada instrucción de un Escenario con una lista de «pasos» (expresiones regulares) que tenemos que escribir. Por tanto, debemos decirle a Behat qué hacer cuando ve Given I am on «login page». Cómo hacerlo lo veremos en breve en otra entrada de este blog.

Deja un comentario

Responsable » Solidgear.
Finalidad » Gestionar los comentarios.
Legitimación » Tu consentimiento.
Destinatarios » Los datos que me facilitas estarán ubicados en los servidores SolidgearGroup dentro de la UE.
Derechos » Podrás ejercer tus derechos, entre otros, a acceder, rectificar, limitar y suprimir tus datos.