Transformación de criterios de aceptación en test cucumber

Thursday, March 7, 2024 - 11:45

En esta nueva entrada de blog, exploraremos los criterios de aceptación creados en lenguaje Gherkin en la entrada anterior del blog, los cuales establecen estándares claros para la validación de formularios. Estos criterios definen las características esenciales que deben cumplir los datos ingresados en un formulario de registro.

1) Nombre: Máximo 30 caracteres alfanuméricos. Campo obligatorio

2) Apellidos: Máximo 60 caracteres alfanuméricos. Campo obligatorio

3) Dni: Hay que validar que el DNI este compuesto por 8 dígitos y una letra con validación de que se corresponda con los números de DNI. Campo obligatorio

4) Fecha de nacimiento: Mayores de edad. Campo obligatorio

5) Estado civil (Casado, Soltero, Viudo, Divorciado). Campo opcional

6) Sexo (Hombre, Mujer). Campo opcional

7) Email. Validar el formato del mail según la expresión regular [A-Z][0-9]@[A-Z][0-9].[ES,COM,ORG]. Campo obligatorio.

8) Dirección. Texto alfanumérico de 100

Para configurar el proyecto con Cucumber en un entorno java y ejecutar las pruebas de aceptación, he seguido estos pasos:

Configuración del Proyecto:

Para configurar este proyecto, primero debes asegurarte de tener las dependencias necesarias en tu archivo de configuración de dependencias (pom.xml si estás utilizando Maven).

Debes incluir las dependencias de Cucumber y JUnit para que el proyecto pueda compilar y ejecutar las pruebas correctamente.

Además, debes asegurarte de tener la estructura de carpetas adecuada para tus archivos de características y definiciones de pasos. En este caso, las características se encuentran en src/test/resources y las definiciones de pasos en un paquete llamado test.

 

Para el proyecto he utilizados 3 clases:
 

Clase ProcesarFormularioServlet:

Esta clase es la configuración principal para ejecutar las pruebas de Cucumber. Se utiliza la anotación @RunWith(Cucumber.class) para indicar que esta clase se ejecutará con Cucumber.

La anotación @CucumberOptions proporciona opciones de configuración para Cucumber, como la ubicación de las características (features), la notificación de pasos (stepNotifications), y el paquete donde se encuentran las definiciones de pasos (glue).

Clase Stepdefs:

Esta clase contiene los pasos de prueba definidos para los escenarios de las características. Los métodos en esta clase están anotados con @Given, @When, @Then, etc., para definir los pasos de los escenarios.

Los métodos de esta clase capturan los datos proporcionados en los escenarios de las características y realizan la lógica de prueba correspondiente. Ejemplo de la anotación @then:

Clase .feature:
Los escenarios están definidos en esta clase que contienen descripciones legibles por humanos de cómo debería comportarse el sistema. Ejemplo de un escenario:

Ejecución:

Si después de implementar todo lo anterior, lo hemos hecho de manera correcta el resultado debería ser algo asi:

Aportes de los Criterios de Aceptación en formato Gherkin:

Los criterios de aceptación escritos en formato Gherkin proporcionan una forma clara y legible de describir el comportamiento esperado de una funcionalidad o característica.

Estos criterios son fácilmente entendibles por personas no técnicas, como los stakeholders del proyecto, lo que facilita la comunicación y alineación de expectativas.

La escritura de criterios de aceptación en formato Gherkin fomenta la colaboración entre los miembros del equipo de desarrollo, ya que todos pueden contribuir a la definición y revisión de los escenarios.

Los escenarios definidos en Gherkin pueden ser automatizados fácilmente con herramientas como Cucumber, lo que permite la ejecución de pruebas automatizadas para verificar que la funcionalidad implementada cumpla con los requisitos especificados.

La validación de los criterios de aceptación asegura que la funcionalidad desarrollada cumpla con las expectativas del cliente y los requisitos del negocio, lo que contribuye a la entrega de un producto de calidad y a la satisfacción del cliente.

 



Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.