Profile Software Services

Qué es Gherkin: cómo usarlo y cuáles son sus elementos

En este post explicamos qué es Gherkin, un lenguaje DSL (lenguaje de dominio específico) muy cercano al lenguaje natural. Repasamos cómo usarlo y cuáles son sus elementos.

Comprendiendo el marco dónde se aplica Gherkin: del TDD al BDD

Igual que una planta crece hacia el Sol… ¿Qué guía tu desarrollo? ¿Los tests unitarios o el comportamiento de la aplicación?

En desarrollo de software, hay una gran cantidad de buenas prácticas que pueden ayudarnos a hacer un código mucho más limpio, optimizado y mantenible. Una de estas prácticas es el Test Driven Development (TDD) o Desarrollo Dirigido por Pruebas, es decir, hacer primero las pruebas (y que estas fallen) y posteriormente desarrollar el código que permite que la prueba pase. No obstante, el desarrollador de software Dan North encontraba al TDD ciertas limitaciones y, debido a ello, propuso un nuevo enfoque para el desarrollo de software: Behavior Driven Development (BDD) o Desarrollo Dirigido por Comportamiento.

¿Y qué es el BDD? En BDD también escribiremos nuestros tests antes que el código que pasa dichas pruebas (a diferencia de la forma tradicional de desarrollo de software en que el testing se acaba dejando para lo último, perdiendo una gran oportunidad de optimizar nuestro trabajo como programadores), pero la diferencia es que nuestros tests no son como en TDD tests unitarios, sino pruebas que validarán que nuestro código cumple requisitos funcionales de negocio.

Por tanto, BDD es un enfoque muy potente para implementar proyectos de software, ya que permite cruzar el puente existente entre los perfiles de negocio (sin conocimientos técnicos pero con amplio conocimiento del producto que se está desarrollando así como de aspectos más económicos del mismo, como puede ser el retorno de la inversión) y los perfiles técnicos (que somos todos aquellos encargados del desarrollo del proyecto pero que tenemos poco conocimiento del área de negocio del proyecto que estamos desarrollando). Los perfiles técnicos y de negocio son complementarios y cuanto mejor sea su compenetración, mejores resultados obtendremos con el proyecto que se está llevando a cabo.

¿Qué es Gherkin?

Tras leer este artículo, no volverás a preguntarte nunca qué es Gherkin (fuera del ámbito culinario)…

Tras esta breve pero necesaria introducción, llegó el momento de contarte qué es Gherkin. Gherkin es un Lenguaje Específico de Dominio (DSL), que son lenguajes diseñados en concreto para resolver un problema muy específico. Y, en este caso, el problema que quiere solucionar Gherkin es un problema de comunicación entre los perfiles de negocio y los perfiles técnicos a la hora de trabajar bajo un enfoque BDD. También se podría trabajar Gherkin con otros enfoques de desarrollo de software, pero lo ideal y lo natural es hacerlo con BDD, al ser mejor práctica y para el enfoque de programación para el que se desarrolló Gherkin. 

Gherkin está compuesto por varios elementos que permiten esta comunicación entre perfiles de negocio y técnicos de forma sencilla. Gherkin tiene elementos de tipo características, de tipo comportamientos, de tipo acciones… Pero todo en lenguaje natural, que un perfil de negocio entienda y un técnico pueda trasladar a código.

Ejemplo de uso de Gherkin

Vamos a verlo con un ejemplo. Pongamos que estamos desarrollando una tienda online o ecommerce. Partamos de historias de usuario, de dónde obtendremos las funcionalidades, siguiendo el clásico modelo de “Yo como usuario quiero poder hacer x para poder obtener y”. En este caso de desarrollo de una tienda online, podríamos estar ante la siguiente funcionalidad: “Yo como usuario quiero poder iniciar sesión para poder comprar productos”.

Ahora traduzcamos esto a Gherkin y expliquemos qué es cada elemento del lenguaje (puedes consultar las definiciones en el siguiente apartado):

Sus elementos más utilizados

¿Cómo usar Gherkin?

La mejor forma de usar Gherkin es con Cucumber… Sigue leyendo y sabrás por qué.

Como comentamos anteriormente, lo ideal es utilizar Gherkin con una aproximación al desarrollo de software basada en el enfoque BDD y es muy recomendable el uso de Gherkin con Cucumber. ¿Por qué? Porque Cucumber es un framework de testing con soporte para BDD, dónde las especificaciones BDD están escritas de acuerdo al patrón “Given-When-Then”. Es decir, ¡están escritas en Gherkin!

Por tanto, Cucumber, a partir de estas instrucciones escritas en Gherkin puede generarnos los casos de prueba de la aplicación y, por tanto, darnos una mayor velocidad en el desarrollo del software. Por supuesto, hay muchísimas otras tecnologías que nos permiten trabajar con Gherkin, pero Cucumber es la más popular.

Espero que este artículo te haya resultado clarificador y ahora comprendas perfectamente qué es Gherkin. Y, para no perderte ningún artículo sobre tecnología, no te olvides de seguirnos en Twitter y en nuestras redes sociales. ¡A disfrutar de Gherkin y el BDD en tus próximos proyectos!

Salir de la versión móvil