En este tema aplicaremos varios conceptos vistos durante el curso a una funcionalidad simple. El objetivo no es usar una herramienta específica, sino practicar el razonamiento de testing: entender requisitos, identificar riesgos, diseñar casos, preparar datos, ejecutar pruebas y reportar defectos.
Trabajaremos con una funcionalidad de registro de usuario. Es un ejemplo común, fácil de entender y suficientemente rico para aplicar pruebas positivas, negativas, casos borde, criterios de aceptación, datos de prueba y reporte de defectos.
La funcionalidad permite que una persona cree una cuenta en una aplicación web.
Campos del formulario:
Al registrar correctamente, el sistema debe crear la cuenta y mostrar un mensaje de confirmación.
Supongamos que recibimos estos requisitos:
Estos requisitos ya nos permiten diseñar varias pruebas, pero también podemos hacer preguntas para aclarar comportamientos.
Antes de probar, conviene aclarar dudas:
Estas preguntas son parte del trabajo de testing. Ayudan a transformar requisitos generales en comportamientos verificables.
Podemos expresar algunos criterios en formato Dado-Cuando-Entonces:
Para priorizar, identificamos riesgos:
Los riesgos relacionados con duplicados, contraseña y aceptación de términos tienen prioridad alta porque afectan reglas esenciales del registro.
Identificamos clases para algunos campos:
| Campo | Clase válida | Clases inválidas |
|---|---|---|
| Nombre | 2 a 50 caracteres. | Vacío, 1 carácter, más de 50 caracteres. |
| Correo | Formato válido y no registrado. | Vacío, formato inválido, correo ya registrado. |
| Contraseña | 8 a 20 caracteres. | Vacía, menos de 8, más de 20. |
| Términos | Aceptados. | No aceptados. |
Ahora seleccionamos bordes importantes:
Estos casos ayudan a detectar errores típicos en comparaciones de mínimo y máximo.
| Tipo | Caso | Resultado esperado |
|---|---|---|
| Positivo | Registrar con todos los datos válidos. | Cuenta creada correctamente. |
| Negativo | Registrar con correo inválido. | Rechazar e informar formato inválido. |
| Negativo | Registrar con correo ya existente. | Rechazar e informar correo en uso. |
| Negativo | Registrar sin aceptar términos. | Rechazar e indicar aceptación obligatoria. |
| Borde | Nombre de 2 caracteres. | Aceptar si los demás datos son válidos. |
| Borde | Contraseña de 21 caracteres. | Rechazar por longitud máxima. |
Preparamos datos controlados:
| Dato | Valor | Uso |
|---|---|---|
| Nombre válido | María Pérez | Registro exitoso. |
| Correo nuevo | maria.perez.prueba@correo.com | Registro exitoso. |
| Correo duplicado | usuario.existente@correo.com | Validar rechazo por duplicado. |
| Correo inválido | usuario-sin-arroba.com | Validar formato. |
| Contraseña válida | Clave1234 | Registro exitoso. |
| Contraseña corta | abc1234 | Validar mínimo. |
Antes de ejecutar, definimos:
Si estos elementos no están preparados, varios casos pueden quedar bloqueados o generar resultados engañosos.
Podemos agrupar los casos en una suite llamada S-REGISTRO.
| ID | Título | Prioridad |
|---|---|---|
| CP-REG-001 | Registro exitoso con datos válidos. | Alta |
| CP-REG-002 | Rechazo de registro con correo inválido. | Alta |
| CP-REG-003 | Rechazo de registro con correo duplicado. | Alta |
| CP-REG-004 | Rechazo de registro con contraseña corta. | Media |
| CP-REG-005 | Rechazo de registro con confirmación diferente. | Alta |
| CP-REG-006 | Rechazo de registro sin aceptar términos. | Alta |
| CP-REG-007 | Validación de nombre con longitud mínima. | Media |
| CP-REG-008 | Validación de contraseña con longitud máxima excedida. | Media |
| Identificador | CP-REG-001 |
|---|---|
| Título | Registro exitoso con datos válidos. |
| Objetivo | Verificar que una persona pueda crear una cuenta con datos válidos y aceptación de términos. |
| Precondiciones | El correo usado no existe previamente en el sistema. |
| Datos | Nombre: María Pérez. Correo: maria.perez.prueba@correo.com. Contraseña: Clave1234. |
| Pasos | Abrir registro, completar campos, confirmar contraseña, aceptar términos y presionar Registrar. |
| Resultado esperado | El sistema crea la cuenta y muestra "Cuenta creada correctamente". |
| Prioridad | Alta |
Supongamos que ejecutamos la suite y obtenemos estos resultados:
| Caso | Resultado | Observación |
|---|---|---|
| CP-REG-001 | Aprobado | La cuenta se crea correctamente. |
| CP-REG-002 | Aprobado | El correo inválido es rechazado. |
| CP-REG-003 | Fallido | El sistema permite crear otra cuenta con correo ya registrado. |
| CP-REG-004 | Aprobado | La contraseña corta es rechazada. |
| CP-REG-005 | Aprobado | La confirmación diferente es rechazada. |
| CP-REG-006 | Fallido | El sistema crea la cuenta aunque no se acepten términos. |
Estos resultados muestran dos defectos importantes que deben reportarse.
| Título | El sistema permite registrar dos cuentas con el mismo correo. |
|---|---|
| Ambiente | QA - versión candidata actual. |
| Precondición | Existe una cuenta con usuario.existente@correo.com. |
| Pasos | Abrir registro, completar datos válidos usando usuario.existente@correo.com, aceptar términos y presionar Registrar. |
| Resultado esperado | El sistema debe rechazar el registro e informar que el correo ya está en uso. |
| Resultado obtenido | El sistema crea una nueva cuenta con el correo duplicado. |
| Severidad sugerida | Alta, porque permite duplicar identidad de usuario. |
| Título | El sistema crea la cuenta sin aceptar términos y condiciones. |
|---|---|
| Ambiente | QA - versión candidata actual. |
| Precondición | El correo usado no existe previamente. |
| Pasos | Abrir registro, completar nombre, correo, contraseña y confirmación, dejar términos sin aceptar y presionar Registrar. |
| Resultado esperado | El sistema debe rechazar el registro e indicar que es obligatorio aceptar términos. |
| Resultado obtenido | El sistema crea la cuenta correctamente. |
| Severidad sugerida | Alta, porque incumple una condición obligatoria del registro. |
Después de corregir los defectos, no alcanza con probar solo los casos fallidos. Conviene ejecutar una pequeña regresión del registro:
Esto ayuda a confirmar que la corrección no rompió otros comportamientos del formulario.
| Requisito | Caso | Resultado | Defecto |
|---|---|---|---|
| Correo no duplicado | CP-REG-003 | Fallido | DEF-REG-001 |
| Aceptar términos | CP-REG-006 | Fallido | DEF-REG-002 |
| Contraseña entre 8 y 20 caracteres | CP-REG-004, CP-REG-008 | Parcial | - |
| Registro exitoso | CP-REG-001 | Aprobado | - |
La trazabilidad permite ver rápidamente qué requisitos tienen problemas y qué pruebas los evidencian.
Con la ejecución simulada podemos informar:
Pero el dato más importante no es solo el número: los defectos afectan reglas centrales del registro, por lo tanto el riesgo es alto.
Algunas pruebas de esta funcionalidad podrían automatizarse en el futuro:
Primero conviene estabilizar la funcionalidad y confirmar reglas. Luego, si estos casos se repetirán en regresión, la automatización puede aportar valor.
Además de los casos documentados, una sesión exploratoria podría investigar:
La exploración puede descubrir riesgos que los casos iniciales no contemplaron.
Un informe claro podría decir:
Este informe combina métricas, hallazgos y recomendación basada en riesgo.
Este caso práctico muestra cómo los conceptos del curso se conectan entre sí. El testing comienza entendiendo qué se espera del sistema, continúa con diseño de casos y datos, sigue con ejecución y registro, y termina con comunicación clara de defectos y riesgos.
Un tester efectivo no se limita a seguir pasos. Analiza requisitos, piensa en riesgos, diseña datos, observa resultados, reporta con claridad y ayuda al equipo a decidir con evidencia.
Con esta base, ya estamos preparados para profundizar en cursos específicos como pruebas unitarias, integración, end-to-end, automatización, testing por lenguaje, TDD, APIs, aplicaciones web, CI/CD, rendimiento y buenas prácticas de calidad de software.