20. Pruebas positivas, negativas y casos borde

20.1 Introducción

Cuando diseñamos casos de prueba, no debemos revisar solamente el camino ideal. También debemos comprobar cómo se comporta el sistema con errores, datos inválidos y condiciones extremas.

Para organizar esta mirada usamos tres conceptos muy prácticos: pruebas positivas, pruebas negativas y casos borde.

Las pruebas positivas confirman que el sistema funciona con datos y condiciones válidas. Las negativas verifican que el sistema rechace o maneje correctamente condiciones inválidas. Los casos borde revisan situaciones cercanas a los límites o condiciones extremas.

20.2 ¿Qué es una prueba positiva?

Una prueba positiva verifica que el sistema funcione correctamente cuando se usan datos válidos y se cumplen las condiciones esperadas.

Ejemplos:

  • Iniciar sesión con usuario activo y contraseña correcta.
  • Registrar una cuenta con correo válido y contraseña permitida.
  • Comprar un producto con stock disponible y medio de pago aprobado.
  • Crear una reserva en una fecha disponible.
  • Cargar un archivo permitido con tamaño válido.

Estas pruebas confirman que el camino esperado funciona. Suelen ser las primeras que se ejecutan para validar una funcionalidad nueva.

20.3 Objetivo de las pruebas positivas

Las pruebas positivas ayudan a responder:

  • ¿La funcionalidad principal está disponible?
  • ¿El sistema acepta datos correctos?
  • ¿El resultado esperado se obtiene en condiciones normales?
  • ¿El flujo principal puede completarse?
  • ¿La regla de negocio se aplica correctamente en el caso válido?

Son importantes porque si el camino positivo no funciona, muchas pruebas más específicas quedarán bloqueadas.

Una prueba positiva no demuestra que todo esté bien, pero confirma que el flujo esperado funciona bajo condiciones válidas.

20.4 ¿Qué es una prueba negativa?

Una prueba negativa verifica que el sistema maneje correctamente datos inválidos, acciones no permitidas o condiciones de error.

Ejemplos:

  • Iniciar sesión con contraseña incorrecta.
  • Registrar una cuenta con correo sin formato válido.
  • Comprar un producto sin stock.
  • Intentar acceder a una pantalla administrativa sin permisos.
  • Cargar un archivo con extensión no permitida.
  • Enviar un formulario con campos obligatorios vacíos.

Una buena prueba negativa no busca que el sistema "se rompa". Busca confirmar que el sistema rechace correctamente lo que debe rechazar y comunique el problema de forma adecuada.

20.5 Objetivo de las pruebas negativas

Las pruebas negativas ayudan a responder:

  • ¿El sistema rechaza datos inválidos?
  • ¿Impide acciones no permitidas?
  • ¿Muestra mensajes de error claros?
  • ¿Protege reglas de negocio importantes?
  • ¿Evita guardar información inconsistente?
  • ¿Maneja fallas externas sin quedar en estado incorrecto?

Son fundamentales porque en el uso real los usuarios se equivocan, los datos llegan incompletos y los servicios pueden fallar.

20.6 Comparación entre pruebas positivas y negativas

Aspecto Prueba positiva Prueba negativa
Datos Válidos. Inválidos, incompletos o no permitidos.
Objetivo Confirmar que el sistema acepta y procesa correctamente. Confirmar que el sistema rechaza o maneja correctamente.
Ejemplo Compra con producto disponible. Compra con producto sin stock.
Resultado esperado Operación exitosa. Error controlado, rechazo o mensaje adecuado.

20.7 ¿Qué es un caso borde?

Un caso borde es una situación ubicada cerca de un límite, una condición extrema o una frontera entre comportamientos. Está muy relacionado con el análisis de valores límite.

Ejemplos:

  • Edad mínima permitida: 18 años.
  • Contraseña de exactamente 8 caracteres si el mínimo es 8.
  • Archivo de exactamente 5 MB si ese es el máximo permitido.
  • Compra de exactamente $1000 si una promoción aplica desde ese monto.
  • Último día de una promoción.
  • Carrito con la cantidad máxima de productos permitida.

Los casos borde son importantes porque muchos defectos aparecen en los límites.

20.8 Caso borde no siempre significa inválido

Un caso borde puede ser válido o inválido. Depende de la regla.

Ejemplo:

Regla: la edad permitida es de 18 a 65 inclusive.
  • 17: borde inválido, justo antes del mínimo.
  • 18: borde válido, mínimo permitido.
  • 65: borde válido, máximo permitido.
  • 66: borde inválido, justo después del máximo.

Por eso los casos borde no reemplazan las pruebas positivas o negativas. Pueden pertenecer a cualquiera de esos grupos.

20.9 Ejemplo completo: inicio de sesión

Tipo Caso Resultado esperado
Positivo Usuario activo con contraseña correcta. Permitir acceso.
Negativo Usuario activo con contraseña incorrecta. Rechazar acceso.
Negativo Usuario bloqueado con contraseña correcta. Rechazar acceso e informar bloqueo.
Borde Quinto intento fallido si el bloqueo ocurre al quinto intento. Bloquear cuenta.
Borde Cuarto intento fallido si el bloqueo ocurre al quinto intento. Rechazar acceso, pero no bloquear todavía.

El caso borde se enfoca en el límite de intentos fallidos, que es una regla crítica del flujo.

20.10 Ejemplo completo: registro de usuario

Para un registro de usuario con correo, contraseña y edad, podríamos diseñar:

  • Positivo: correo válido, contraseña válida y edad permitida.
  • Negativo: correo sin arroba.
  • Negativo: contraseña sin requisitos mínimos.
  • Negativo: edad fuera del rango permitido.
  • Borde: edad mínima permitida.
  • Borde: edad justo menor que la mínima.
  • Borde: contraseña con longitud mínima exacta.
  • Borde: contraseña justo menor que la longitud mínima.

Este conjunto cubre camino exitoso, errores esperados y zonas cercanas a límites.

20.11 Ejemplo completo: carga de archivo

Regla:

El sistema permite cargar archivos PDF de hasta 5 MB.
Tipo Caso Resultado esperado
Positivo Cargar PDF válido de 2 MB. Aceptar archivo.
Negativo Cargar archivo JPG. Rechazar por formato no permitido.
Negativo Cargar PDF corrupto. Rechazar o informar archivo inválido.
Borde Cargar PDF de exactamente 5 MB. Aceptar si el límite es inclusive.
Borde Cargar PDF apenas mayor a 5 MB. Rechazar por tamaño máximo.

20.12 Casos borde en fechas

Las fechas generan muchos casos borde porque dependen de días, horas, vencimientos y zonas horarias.

Ejemplos:

  • Primer día de una promoción.
  • Último día de una promoción.
  • Un minuto antes de vencer una reserva.
  • Exactamente en el momento de vencimiento.
  • Un minuto después de vencida.
  • Cambio de mes o año.
  • Año bisiesto.

Los casos borde de fechas suelen ser críticos en reservas, pagos, vencimientos, promociones y reportes.

20.13 Casos borde en permisos

Los permisos también pueden tener casos borde. Por ejemplo:

  • Usuario recién creado sin rol asignado.
  • Usuario al que se le acaba de quitar un permiso.
  • Usuario con varios roles simultáneos.
  • Usuario suspendido que intenta acceder.
  • Sesión expirada durante una operación.
  • Usuario administrador degradado a usuario común.

Estos casos ayudan a descubrir problemas de seguridad o autorización que no aparecen con usuarios normales.

20.14 Casos borde en integraciones

Cuando el sistema depende de otros servicios, los casos borde pueden estar en respuestas externas.

Ejemplos:

  • El servicio externo responde justo antes del timeout.
  • El servicio externo responde después del timeout.
  • El pago es aprobado, pero la confirmación llega duplicada.
  • El servicio devuelve una respuesta válida, pero con campos opcionales vacíos.
  • La API devuelve muchos registros, justo en el máximo permitido.
  • La conexión se corta después de confirmar una operación.

Estos casos son importantes porque muchas fallas reales ocurren en la frontera entre sistemas.

20.15 Equilibrio entre tipos de casos

Un conjunto de pruebas equilibrado suele incluir:

  • Casos positivos para confirmar los flujos principales.
  • Casos negativos para validar errores y restricciones.
  • Casos borde para revisar límites y condiciones extremas.

Si solo probamos casos positivos, podemos pasar por alto errores importantes. Si solo probamos negativos y bordes, podemos olvidar comprobar que el flujo principal funciona. La combinación depende del riesgo y la importancia de la funcionalidad.

20.16 Relación con técnicas anteriores

Estos conceptos se relacionan con técnicas ya vistas:

Concepto Relación
Clases de equivalencia Ayudan a elegir datos positivos y negativos representativos.
Valores límite Ayudan a elegir casos borde cerca de mínimos y máximos.
Tablas de decisión Ayudan a cubrir combinaciones positivas y negativas de condiciones.
Transiciones de estado Ayudan a probar cambios válidos e inválidos entre estados.

20.17 Cómo priorizar

Cuando el tiempo es limitado, conviene priorizar:

  • Flujos positivos críticos para el negocio.
  • Restricciones de seguridad, dinero o datos importantes.
  • Casos borde en reglas sensibles.
  • Errores que pueden dejar datos inconsistentes.
  • Funcionalidades modificadas recientemente.
  • Áreas con historial de defectos.
  • Casos negativos que validan protección del sistema.

No todos los casos tienen el mismo valor. La prioridad debe estar basada en riesgo e impacto.

20.18 Errores comunes

Al diseñar pruebas positivas, negativas y borde, algunos errores frecuentes son:

  • Probar solo el camino exitoso.
  • Confundir prueba negativa con intentar romper el sistema sin criterio.
  • No definir resultado esperado para errores.
  • Olvidar casos borde en mínimos y máximos.
  • No considerar permisos, fechas o integraciones como fuentes de casos borde.
  • Usar datos inválidos que no corresponden a una regla real.
  • Crear demasiados casos negativos de bajo valor y olvidar riesgos principales.

Una prueba negativa debe tener tanto criterio como una positiva.

20.19 Buenas prácticas

Para diseñar mejor estos casos conviene:

  • Comenzar por el flujo positivo principal.
  • Identificar reglas que deben rechazar datos o acciones.
  • Definir mensajes o comportamientos esperados ante errores.
  • Buscar límites de rangos, fechas, cantidades y longitudes.
  • Incluir casos de permisos y estados no permitidos.
  • Usar datos representativos, no combinaciones al azar.
  • Priorizar según impacto y probabilidad.
  • Documentar claramente si el caso es positivo, negativo o borde cuando ayude a organizar la suite.

20.20 Qué debes recordar de este tema

  • Las pruebas positivas validan que el sistema funcione con datos y condiciones válidas.
  • Las pruebas negativas validan que el sistema rechace o maneje correctamente datos inválidos o acciones no permitidas.
  • Los casos borde revisan límites, extremos y fronteras entre comportamientos.
  • Un caso borde puede ser válido o inválido.
  • Los errores esperados también necesitan resultado esperado claro.
  • Fechas, permisos e integraciones también pueden tener casos borde.
  • Un conjunto equilibrado combina casos positivos, negativos y borde.
  • La selección debe basarse en riesgo, impacto y reglas de negocio.

20.21 Conclusión

Las pruebas positivas, negativas y casos borde permiten diseñar una suite más realista. Un sistema no solo debe funcionar cuando todo está bien; también debe protegerse ante errores, rechazar acciones incorrectas y comportarse adecuadamente en los límites.

Estos conceptos no reemplazan técnicas como clases de equivalencia, valores límite, tablas de decisión o transiciones de estado. Las complementan y ayudan a organizar la selección de casos.

En el próximo tema estudiaremos el plan de pruebas y la estrategia de testing, para ordenar objetivos, alcance, riesgos, recursos y criterios de ejecución.