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:
- Se utilizará un promt sencillo.
- Se utilizará un promt más elaborado que en la prueba anterior.
- 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