Volver al listado Escribiendo Historias de Usuario con Gherkin

01-05-2024

Requisitos

Escribiendo Historias de Usuario con Gherkin

Descubre cómo Gherkin puede elevar tu capacidad para escribi


Escribir historias de usuario efectivas es fundamental para el éxito de cualquier proyecto de software. Sin embargo, encontrar el equilibrio entre la claridad y la exhaustividad puede ser un desafío. Gherkin, con su sintaxis estructurada y legible, puede ser una herramienta invaluable en el proceso de escribir historias de usuario.

Empezando con lo básico

Un ejemplo de un escenario Gherkin para la descarga de un archivo CSV desde la página de listado de usuarios

Característica: Descarga de archivo CSV desde la página de listado de usuarios

  Como un administrador del sitio web
  Quiero descargar un archivo CSV de la lista de usuarios
  Para poder realizar análisis de datos fuera de línea

  Escenario: El administrador descarga el archivo CSV de la lista de usuarios
    Dado que el administrador ha iniciado sesión en el sistema
    Y está en la página de listado de usuarios
    Cuando el administrador hace clic en el botón "Descargar CSV"
    Entonces el sistema genera un archivo CSV de la lista de usuarios
    Y el archivo CSV se descarga en el sistema del administrador

¿Qué pasa si el archivo CSV no contiene datos válidos?

Si el archivo CSV no contiene datos válidos, el comportamiento dependerá de cómo esté diseñada tu aplicación para manejar este tipo de situaciones. Aquí tienes un ejemplo de un escenario Gherkin que maneja esta situación:

Escenario: El archivo CSV descargado no contiene datos válidos
  Dado que el administrador ha descargado el archivo CSV de la lista de usuarios
  Cuando el administrador abre el archivo CSV
  Y el archivo CSV no contiene datos válidos
  Entonces la aplicación muestra un mensaje de error indicando que los datos no son válidos

Este escenario asume que tu aplicación tiene alguna forma de validar los datos en el archivo CSV después de que se ha descargado. Si tu aplicación no tiene esta capacidad, podrías considerar agregarla para mejorar la robustez de tu sistema. Por supuesto, los detalles específicos pueden variar dependiendo de los requisitos de tu aplicación. Por ejemplo, podrías querer especificar qué constituye “datos válidos” en este contexto.

¿Qué constituye "datos válidos"?

En el contexto de un archivo CSV descargado desde una página de listado de usuarios, “datos válidos” podrían incluir los siguientes criterios:

  • Formato Correcto: Los datos deben estar en el formato CSV correcto, es decir, los valores separados por comas. Cada línea debe representar un registro único y cada valor separado por comas en esa línea debe representar un campo de datos.
  • Campos Esperados: El archivo CSV debe contener todos los campos esperados. Por ejemplo, si se espera que cada usuario tenga un ID, un nombre y un correo electrónico, entonces cada registro en el archivo CSV debe tener estos tres campos.
  • Tipos de Datos Correctos: Cada campo debe tener el tipo de datos correcto. Por ejemplo, el ID del usuario podría ser un número entero, el nombre del usuario podría ser una cadena de texto y el correo electrónico del usuario debería ser una cadena de texto que contiene un ‘@’ y un dominio.
  • Sin Datos Faltantes: No debe haber campos vacíos donde se esperen datos.
  • Datos No Duplicados: Cada usuario debe ser único en la lista, por ejemplo, no debería haber dos usuarios con el mismo ID.

Ahora tenemos un nuevo escenario Gherkin que define estos criterios:

Escenario: Validación de los datos en el archivo CSV descargado
  Dado que el administrador ha descargado el archivo CSV de la lista de usuarios
  Cuando el administrador abre el archivo CSV
  Entonces el archivo CSV debe estar en el formato correcto
  Y cada registro debe contener los campos esperados
  Y cada campo debe tener el tipo de datos correcto
  Y no debe haber campos vacíos donde se esperen datos
  Y no debe haber usuarios duplicados en la lista
  Si alguna de estas validaciones falla
  Entonces la aplicación muestra un mensaje de error indicando que los datos no son válidos

¿Qué otros escenarios podrían surgir al descargar un archivo CSV?

Archivo CSV no disponible

Escenario: El archivo CSV no está disponible para su descarga
  Dado que el administrador ha iniciado sesión en el sistema
  Y está en la página de listado de usuarios
  Cuando el administrador hace clic en el botón "Descargar CSV"
  Y el archivo CSV no está disponible
  Entonces el sistema muestra un mensaje de error indicando que el archivo CSV no está disponible

Descarga interrumpida

Escenario: La descarga del archivo CSV se interrumpe
  Dado que el administrador ha iniciado la descarga del archivo CSV de la lista de usuarios
  Cuando la descarga se interrumpe debido a una conexión a internet inestable
  Entonces el sistema muestra un mensaje de error indicando que la descarga se ha interrumpido

Archivo CSV demasiado grande

Escenario: El archivo CSV es demasiado grande para ser descargado
  Dado que el administrador ha iniciado la descarga del archivo CSV de la lista de usuarios
  Cuando el tamaño del archivo CSV es demasiado grande para ser descargado
  Entonces el sistema muestra un mensaje de error indicando que el archivo es demasiado grande

Estos son solo algunos ejemplos de los muchos escenarios que podrían surgir al descargar un archivo CSV. Los detalles específicos pueden variar dependiendo de los requisitos de tu aplicación y del entorno en el que se esté ejecutando. Recuerda que siempre es importante considerar y manejar los posibles errores y excepciones que puedan ocurrir para asegurar una buena experiencia de usuario.

Evitar repetir código utilizando "Esquema de escenario" (Scenario Outline)

En Gherkin, puedes usar la característica de “Escenario de Esquema” (Scenario Outline) para evitar la repetición de código. Un Escenario de Esquema proporciona una técnica de parametrización de escenarios.

Un ejemplo de cómo podrías reescribir uno de los escenarios anteriores usando un Escenario de Esquema:

Esquema del escenario: El administrador descarga el archivo CSV de la lista de usuarios con un resultado esperado
  Dado que el administrador ha iniciado sesión en el sistema
  Y está en la página de listado de usuarios
  Cuando el administrador hace clic en el botón "Descargar CSV"
  Entonces el sistema <Resultado>

  Ejemplos:
    | Resultado |
    | genera un archivo CSV de la lista de usuarios y el archivo CSV se descarga en el sistema del administrador |
    | muestra un mensaje de error indicando que el archivo CSV no está disponible |
    | muestra un mensaje de error indicando que la descarga se ha interrumpido |
    | muestra un mensaje de error indicando que el archivo es demasiado grande |

En este ejemplo, <Resultado> es un parámetro que se sustituye por cada valor en la columna “Resultado” de la tabla de “Ejemplos”. Esto permite reutilizar el mismo escenario con diferentes resultados esperados, reduciendo la repetición de código. Por supuesto, los detalles específicos pueden variar dependiendo de los requisitos de tu aplicación.