Escritura de criterios de aceptación para una historia de usuario

Thursday, February 22, 2024 - 12:15

Teniendo la siguiente historia de usuario:

Como usuario administrador quiero una página que me permita gestionar los usuarios de una web. Se presentarán en un listado con todas las columnas (nombre, apellidos, DNI, Fecha, Estado civil, Sexo, Email, Dirección). Además, quiero poder dar de alta, modificar y eliminar los usuarios con los siguientes campos:

 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

Se van a realizar una serie de pruebas utilizando chatgpt 3.5:

  1. Se utilizará un promt sencillo.
  2. Se utilizará un promt más elaborado que en la prueba anterior.
  3. Se pedirá que respecto lo anterior, revise la historia de usuario y saque más criterios de aceptación.

 

CASO 1:

Prompt: “ Dame criterios de aceptación para esta historia”

Resultado:

Los criterios de aceptación para la historia de usuario "Gestión de usuarios en una página web" podrían ser los siguientes:

1. Listado de usuarios:

  • Se debe mostrar un listado con todas las columnas especificadas (nombre, apellidos, DNI, fecha de nacimiento, estado civil, sexo, email, dirección) de todos los usuarios registrados en la web.
  • El listado debe permitir ordenar los usuarios por cualquier columna.
  • Debe ser posible buscar usuarios por nombre, apellidos, DNI, o email.

2. Alta de usuarios:

  • Debe existir un formulario de alta de usuarios que contenga los campos especificados.
  • Los campos obligatorios (nombre, apellidos, DNI, fecha de nacimiento, email) deben ser validados antes de permitir el envío del formulario.
  • El DNI debe cumplir con el formato y la validación especificados.
  • La fecha de nacimiento debe ser mayor de edad.
  • El email debe cumplir con el formato de la expresión regular especificada.

3, Modificación de usuarios:

  • Debe existir un formulario de modificación de usuarios que permita editar los campos de un usuario existente.
  • Los campos obligatorios deben ser validados antes de permitir el envío del formulario, permitiendo al usuario modificar únicamente los campos no obligatorios si así lo desea.
  • Las validaciones para el DNI, fecha de nacimiento y email deben mantenerse al editar un usuario.

4. Eliminación de usuarios:

  • Debe ser posible eliminar un usuario desde el listado de usuarios.
  • Al eliminar un usuario, se debe mostrar una confirmación antes de proceder con la eliminación.
  • Después de confirmar, el usuario debe ser eliminado permanentemente de la base de datos.

5. Validaciones generales:

  • Se deben mostrar mensajes de error claros y específicos cuando se ingresen datos incorrectos o incompletos en los formularios.
  • La interfaz de usuario debe ser intuitiva y fácil de usar para el administrador.

6. Seguridad:

  • La página debe implementar medidas de seguridad para proteger los datos de los usuarios, como la prevención de inyecciones SQL y la validación de datos de entrada.
  • Se debe requerir autenticación y autorización para acceder a las funciones de gestión de usuarios.

7. Pruebas:

  • Se deben realizar pruebas exhaustivas para asegurar que todas las funcionalidades descritas funcionen correctamente en diferentes navegadores y dispositivos.
  • Se deben realizar pruebas de integración para garantizar que la gestión de usuarios se integre correctamente con otras partes del sistema, si las hubiera.

 

CASO 2:

Prompt: "Actuando como PO y teniendo en cuenta que es para una aplicación web. Dame criterios en formato BDD (Behavior Driven Development) con Gherkin formato GIVE, WHEN THEN"

Resultado:

Feature: Gestión de usuarios en una aplicación web

  Como usuario administrador

  Quiero una página que me permita gestionar los usuarios de una web

  Para poder dar de alta, modificar y eliminar usuarios

Scenario: Visualizar listado de usuarios

    Given que estoy en la página de gestión de usuarios

    When accedo al listado de usuarios

    Then debería ver todas las columnas de los usuarios: nombre, apellidos, DNI, fecha de nacimiento, estado civil, sexo, email y dirección

 

Scenario: Crear un nuevo usuario

    Given que estoy en la página de gestión de usuarios

    When creo un nuevo usuario con los siguientes datos:

      | Nombre         | Apellidos         | DNI              | Fecha de nacimiento | Estado civil    | Sexo      

     | Juan Pérez     | López García  | 12345678X |  1990-01-01                 | Soltero         | Hombre 

     |  Email                         | Dirección            |

     |   juan@example.com | Calle   123, ABC |

    Then el usuario debería ser creado correctamente

 

Scenario: Modificar un usuario existente

    Given que estoy en la página de gestión de usuarios

    When selecciono el usuario con DNI "12345678X"

    And modifico los siguientes datos:

      | Campo           | Nuevo valor    |

      | Nombre         | Juanito        |

      | Email              | juanito@example.com |

    Then el usuario debería ser actualizado correctamente

 

  Scenario: Eliminar un usuario

    Given que estoy en la página de gestión de usuarios

    When elimino el usuario con DNI "12345678X"

    Then el usuario debería ser eliminado correctamente

 

Scenario: Validaciones al crear un usuario

    Given que estoy en la página de gestión de usuarios

    When intento crear un usuario con datos inválidos:

    | Nombre  | Apellidos       | DNI              | Fecha de nacimiento    | Estado civil      | Sexo       

    | Juan      | López García | 12345678X |    2005-01-01                 | Soltero            | Hombre 

    | Email                        | Dirección           |

    | juan@example.com | Calle 123, ABC  |

 Then debería recibir un mensaje de error indicando los campos inválidos

 

  Scenario: Validaciones al modificar un usuario

    Given que estoy en la página de gestión de usuarios

    When intento modificar un usuario con datos inválidos:

      | Campo           | Nuevo valor    |

      | Nombre         |         Pedro       |

    Then debería recibir un mensaje de error indicando los campos inválidos

 

  Scenario: Validaciones al eliminar un usuario

    Given que estoy en la página de gestión de usuarios

    When intento eliminar un usuario que no existe

    Then debería recibir un mensaje de error indicando que el usuario no se puede eliminar

 

CASO 3:

Prompt: “Revisa la historia anterior y saca más criterios de aceptación usando BDD (Behavior Driven Development) con Gherkin formato GIVE, WHEN THEN”

Resultado:

Scenario: Listado de usuarios

    GIVEN que soy un usuario administrador

    WHEN accedo a la página de gestión de usuarios

    THEN debo ver un listado de todos los usuarios registrados

    Y cada usuario debe ser presentado con sus datos completos, incluyendo nombre, apellidos,  DNI, fecha de nacimiento, estado civil, sexo, email y dirección.

 

Scenario: Alta usuarios

    GIVEN que soy un usuario administrador en la página de gestión de usuarios

    WHEN deseo agregar un nuevo usuario

    Y completo el formulario con datos válidos para el nuevo usuario

    THEN debería poder enviar el formulario de alta

    Y el nuevo usuario debería ser agregado correctamente al sistema

 

Scenario: Modificación de usuarios

    GIVEN que soy un usuario administrador en la página de gestión de usuarios

    WHEN selecciono un usuario existente para modificar

    Y realizo cambios válidos en los datos del usuario

    THEN debería poder guardar los cambios

    Y los datos del usuario en el sistema deben actualizarse correctamente

 

Scenario: Eliminación de usuarios

    GIVEN que soy un usuario administrador en la página de gestión de usuarios

    WHEN elijo eliminar un usuario específico

    Y confirmo la eliminación

    THEN el usuario seleccionado debe ser eliminado de la base de datos

    Y ya no debe aparecer en el listado de usuarios

 

Scenario: Validaciones de campos

    GIVEN que estoy completando el formulario de alta/modificación de usuario

    WHEN ingreso datos inválidos en uno o más campos

    THEN debo ver mensajes de error específicos junto a los campos correspondientes

    Y no debo poder enviar el formulario hasta que corrija los errores

 

Scenario: Seguridad

     GIVEN que soy un usuario no autenticado

    WHEN intento acceder a la página de gestión de usuarios

   THEN debo ser redirigido al formulario de inicio de sesión

   Y solo los usuarios autenticados con privilegios de administrador pueden acceder a la gestión  de usuarios

 

 Scenario: Pruebas de integración

      GIVEN que la gestión de usuarios está integrada con otras funcionalidades del sistema

     WHEN realizo pruebas de integración

    THEN debo asegurarme de que la gestión de usuarios funcione correctamente con otras partes del sistema, como la autenticación y la seguridad de datos

 

Como conclusión, al revisar los tres casos de pruebas presentados, se nota una diferencia en la profundidad y la especificidad de los criterios de aceptación. El primer caso proporciona criterios detallados y bien estructurados, que abarcan una amplia gama de funcionalidades y validaciones. Estos criterios son más generales pero están bien organizados.

Por otro lado, el segundo y tercer caso presenta criterios más específicos y detallados, escritos en un formato BDD (Gherkin) más explotable y orientado a casos de prueba más concretos.

Estos test escritos en Gherkin los trataremos de explotar como test de aceptación en posteriores entradas del blog para garantizar la funcionalidad y la calidad del sistema.



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.