Si trabajás en el mundo del testing, puede que en algún momento hayas escuchado hablar de Gherkin. Este lenguaje es muy empleado en BDD (behaviour driven development), una de las metodologías ágiles de programación que está teniendo cada vez más peso.
Para conocer un poco más sobre Gherkin le hicimos un par de preguntas a Juan Pablo Davis, QA Engineer en intive, y esto fue lo que nos contó.
1) ¿Qué es Gherkin y para que se usa?
Gherkin es un método alternativo de diseño de casos de prueba, el cual tiene una sintaxis y estructura básica a la hora de describir las pruebas que llevaremos a cabo durante el proceso de testing.
La palabra clave es alternativo. Todos nos hemos encontrado a lo largo de nuestra carrera con la inevitable situación de tener que repetir pruebas o procesos, de tener que completar casillero por casillero nuestros pasos a seguir, resultados esperados y otros tantos datos necesarios e infaltables en un caso de prueba.
¿Qué me dirían si les traigo una alternativa a eso? Una alternativa que, al principio puede asustar un poco, pero que con práctica puede agilizar y hacer que los diseños se transformen de simples planillas repletas de pasos y datos a un cuento corto, mucho más sencillo de entender (tanto para los testers como para el cliente).
2)¿Cómo conociste Gherkin? ¿Cuándo lo aplicaste por primera vez?
Inicio contando un poco mi historia: la primera vez que escuché hablar de Gherkin fue en un curso de Testing Funcional en Proyecto Nahual. Recuerdo que ya había comprendido los conceptos básicos del testing y me tenía cierta confianza (puede que equivocada) a la hora de diseñar casos de prueba tradicionales, hasta que en un momento nombraron Gherkin. Cuando comenzaron a explicarnos su estructura, sus palabras clave y demás pormenores, lo primero que pensé fue: ¿¡Que necesidad de complicarme la vida!? Si ya sabia la estructura de diseños de casos de prueba tradicionales, ¿de que me servía aprender otro método? Las vueltas de la vida me llevaron a conseguir mi primer trabajo como tester después de varias entrevistas fallidas obviamente y en el primer día de trabajo me comienzan a mostrar las herramientas de trabajo y adivinen ¿Qué formato se utilizaban para el diseño de casos de prueba en este proyecto? Así es: Gherkin.
3)¿Cuáles son las características de sus sintaxis? ¿Cuáles son sus elementos?
Hablemos un poco de la estructura del Gherkin.
● Feature(caracteristica): indica el nombre de la funcionalidad a testear. Debe ser un título claro y explícito.
● Escenario: Describe el escenario a testear
● GIVEN(DADO): Provee el contexto para el escenario descrito, lo que llamamos en el diseño de casos de prueba tradicional como precondiciones.
● WHEN(CUANDO): Especifica el conjunto de pasos a seguir a la hora de realizar el test.
● THEN(ENTONCES: Especifica el resultado esperado del test.
Nota: En el caso que queramos utilizar más de un paso utilizaremos la palabra AND(Y)
4)¿Podrías mostrarnos un ejemplo?
Dejo un ejemplo a continuación:
Feature: Servir Café
El café no se debe servir hasta que se pague.
El café no se debe servir hasta que se haya presionado el botón
Si no queda café entonces el dinero debe ser devuelto.
Escenario: Comprar último café.
DADO que hay un café en la maquina
Y he depositado $100
CUANDO presiono el botón
ENTONCES un café debería ser servido
5)¿Cuáles son las ventajas de aplicar Gherkin en proyecto de software?
Ahora, ¿qué beneficios nos trae este formato? El primero que se me viene a la mente es que es más dinámico que ir completando celda por celda con pasos y datos. Otra ventaja que nos da es que el equipo de Testing Automation nos va a agradecer, ya que la transición a los test automatizados con este formato es más sencilla. Por último, pero no por eso menos importante, este formato permite entender la prueba a cualquier integrante del equipo sin necesidad de que sea QA, muchas veces el cliente se “marea” al ver los casos de prueba tradicionales, en este caso nos vamos a ahorrar nuestro tan valioso tiempo al no tener que explicar los escenarios.
6)¿Algún tip o consejo para quienes se embarquen en la aventura de aprenderlo?
Para ir cerrando mi consejo a la hora de aprender este formato es uno solo: No tengan miedo. La curva de aprendizaje es muy rápida, se van a ir dando cuenta a medida que hagan los primeros casos que empieza a fluir rápido y las dudas se van disipando.