16. Diseño de casos de prueba: clases de equivalencia

16.1 Introducción

En testing rara vez podemos probar todos los datos posibles. Si un campo acepta edades entre 18 y 65, no sería eficiente probar todos los valores uno por uno. Necesitamos seleccionar datos representativos.

La técnica de clases de equivalencia, también llamada partición de equivalencia, ayuda a dividir los datos en grupos que deberían comportarse de manera similar. Luego elegimos uno o algunos valores representativos de cada grupo.

Esta técnica permite diseñar pruebas más ordenadas, reducir casos repetidos y cubrir tanto datos válidos como inválidos.

16.2 Idea principal

Una clase de equivalencia es un conjunto de valores que, según las reglas del sistema, deberían recibir el mismo tratamiento.

Ejemplo: si un campo edad acepta valores entre 18 y 65, podemos formar estas clases:

  • Valores menores que 18: inválidos.
  • Valores entre 18 y 65: válidos.
  • Valores mayores que 65: inválidos.

En lugar de probar todas las edades posibles, elegimos valores representativos. Por ejemplo: 17, 30 y 70.

La técnica no busca probar todos los valores. Busca probar representantes de grupos que deberían comportarse igual.

16.3 ¿Por qué sirve esta técnica?

Las clases de equivalencia ayudan porque muchos datos producen el mismo tipo de respuesta. Si el sistema rechaza edades menores de 18, probablemente rechace 10, 15 y 17 por la misma razón.

La técnica permite:

  • Reducir la cantidad de pruebas sin perder cobertura importante.
  • Organizar datos válidos e inválidos.
  • Detectar reglas de negocio incompletas.
  • Evitar repetir pruebas muy similares.
  • Justificar por qué elegimos ciertos datos.
  • Diseñar casos de prueba de forma más sistemática.

Es una técnica de caja negra porque se basa en requisitos y comportamiento esperado, no en el código interno.

16.4 Clases válidas e inválidas

Normalmente identificamos dos grandes tipos de clases:

Tipo de clase Descripción Ejemplo
Válida Conjunto de valores que el sistema debe aceptar. Edad entre 18 y 65.
Inválida Conjunto de valores que el sistema debe rechazar o manejar como error. Edad menor que 18 o mayor que 65.

Probar solo clases válidas no alcanza. También debemos comprobar que el sistema rechace datos inválidos de manera correcta.

16.5 Pasos para aplicar clases de equivalencia

Una forma práctica de aplicar la técnica es seguir estos pasos:

  1. Identificar el campo, entrada o condición que se quiere probar.
  2. Leer la regla de negocio o requisito asociado.
  3. Separar valores válidos e inválidos.
  4. Agrupar valores que deberían comportarse igual.
  5. Elegir un representante de cada clase.
  6. Diseñar casos de prueba con esos representantes.
  7. Definir el resultado esperado para cada caso.

El paso más importante es entender la regla. Si la regla es ambigua, las clases también serán ambiguas.

16.6 Ejemplo 1: edad permitida

Regla:

El sistema permite registrarse solo a personas de 18 a 65 años inclusive.

Clases de equivalencia:

Clase Rango Tipo Valor representante Resultado esperado
CE-1 Menor que 18 Inválida 17 El sistema debe rechazar el registro.
CE-2 Entre 18 y 65 Válida 30 El sistema debe permitir continuar.
CE-3 Mayor que 65 Inválida 70 El sistema debe rechazar el registro.

Con tres casos cubrimos los grupos principales de comportamiento. En el próximo tema veremos valores límite, donde probaremos específicamente 18 y 65.

16.7 Ejemplo 2: longitud de contraseña

Regla:

La contraseña debe tener entre 8 y 20 caracteres.

Clases posibles:

  • Menos de 8 caracteres: inválida.
  • Entre 8 y 20 caracteres: válida.
  • Más de 20 caracteres: inválida.

Valores representantes:

Dato Clase Resultado esperado
abc123 Menos de 8 caracteres Rechazar contraseña.
Clave1234 Entre 8 y 20 caracteres Aceptar contraseña si cumple el resto de reglas.
Clave12345678901234567890 Más de 20 caracteres Rechazar contraseña.

Si además existen reglas sobre mayúsculas, números o símbolos, deberemos crear clases adicionales para esas condiciones.

16.8 Ejemplo 3: tipo de usuario

No todas las clases son numéricas. También podemos aplicar la técnica a categorías.

Regla:

Solo los usuarios administradores pueden eliminar productos.

Clases:

  • Usuario administrador: clase válida para eliminar.
  • Usuario vendedor: clase inválida para eliminar.
  • Usuario cliente: clase inválida para eliminar.
  • Usuario no autenticado: clase inválida para eliminar.

Cada clase representa una condición de permisos. Elegimos un usuario representante de cada tipo y verificamos el resultado esperado.

16.9 Ejemplo 4: estado de una orden

Las clases de equivalencia también sirven para estados.

Regla:

Una orden solo puede cancelarse si está en estado Pendiente o Confirmada. No puede cancelarse si está Enviada, Entregada o Anulada.
Clase Estados Tipo Resultado esperado
CE-1 Pendiente, Confirmada Válida Permitir cancelación.
CE-2 Enviada, Entregada, Anulada Inválida Rechazar cancelación.

Podríamos elegir un representante de cada clase, aunque si el riesgo es alto tal vez convenga probar todos los estados.

16.10 Cuidado con clases demasiado amplias

Una clase de equivalencia debe agrupar valores que realmente deberían comportarse igual. Si agrupamos valores distintos en exceso, podemos ocultar defectos.

Ejemplo: si un campo acepta archivos PDF, JPG y PNG, podríamos pensar que todos son "archivos válidos". Pero tal vez el sistema procesa de manera distinta cada formato. En ese caso conviene separarlos:

  • PDF válido.
  • JPG válido.
  • PNG válido.
  • Formato no permitido.
  • Archivo demasiado grande.
  • Archivo vacío o corrupto.

La técnica requiere criterio. No todo lo válido pertenece necesariamente a la misma clase.

16.11 Cuidado con reglas combinadas

A veces un campo tiene varias reglas simultáneas. Por ejemplo:

La contraseña debe tener entre 8 y 20 caracteres, al menos una mayúscula, al menos un número y al menos un símbolo.

En este caso no alcanza con crear clases solo por longitud. También debemos considerar clases relacionadas con composición:

  • Sin mayúscula.
  • Sin número.
  • Sin símbolo.
  • Con todos los requisitos.

Cuando hay muchas condiciones combinadas, puede ser útil complementar con tablas de decisión, técnica que veremos más adelante.

16.12 Relación con valores límite

Las clases de equivalencia y los valores límite están muy relacionadas, pero no son lo mismo.

  • Clases de equivalencia agrupa valores por comportamiento esperado.
  • Valores límite se enfoca en los bordes entre clases.

Ejemplo para edad de 18 a 65:

  • Clase válida: 18 a 65.
  • Clase inválida inferior: menor que 18.
  • Clase inválida superior: mayor que 65.
  • Valores límite importantes: 17, 18, 19, 64, 65 y 66.

Primero podemos identificar clases. Luego, para mayor precisión, analizamos sus límites.

16.13 De clases a casos de prueba

Una vez identificadas las clases, debemos convertirlas en casos de prueba concretos.

Ejemplo:

Clase Dato elegido Caso de prueba Resultado esperado
Edad menor que 18 17 Intentar registrarse con edad 17. El sistema debe rechazar el registro.
Edad entre 18 y 65 30 Intentar registrarse con edad 30. El sistema debe permitir continuar.
Edad mayor que 65 70 Intentar registrarse con edad 70. El sistema debe rechazar el registro.

La clase orienta la selección del dato; el caso describe la verificación concreta.

16.14 Ventajas

Las clases de equivalencia tienen varias ventajas:

  • Reducen cantidad de pruebas repetitivas.
  • Ayudan a seleccionar datos con criterio.
  • Ordenan el análisis de reglas.
  • Incluyen datos válidos e inválidos.
  • Son fáciles de entender y aplicar.
  • Sirven en formularios, APIs, reglas de negocio, estados y permisos.

Es una de las primeras técnicas que conviene aprender porque aparece en muchos contextos de testing.

16.15 Límites

También tiene límites:

  • No detecta necesariamente errores en los bordes si no se complementa con valores límite.
  • Puede ocultar defectos si las clases se definen demasiado amplias.
  • No cubre bien combinaciones complejas de condiciones por sí sola.
  • Depende de requisitos claros.
  • Requiere criterio para elegir buenos representantes.

Por eso suele combinarse con otras técnicas de diseño de pruebas.

16.16 Errores comunes

Al aplicar clases de equivalencia, algunos errores frecuentes son:

  • Probar solo clases válidas.
  • Olvidar datos inválidos.
  • Crear una sola clase para datos que tienen comportamientos distintos.
  • No revisar límites entre clases.
  • Elegir datos representantes sin justificar la elección.
  • Aplicar la técnica sin entender la regla de negocio.
  • No convertir las clases en casos de prueba ejecutables.

La técnica es simple, pero necesita atención para no generar huecos de cobertura.

16.17 Buenas prácticas

Para aplicar bien clases de equivalencia conviene:

  • Leer cuidadosamente la regla o requisito.
  • Identificar clases válidas e inválidas.
  • Separar clases cuando el comportamiento esperado sea distinto.
  • Elegir representantes claros de cada clase.
  • Definir resultado esperado para cada representante.
  • Complementar con valores límite cuando existan rangos.
  • Documentar la razón de selección de datos en casos importantes.
  • Revisar clases si cambia la regla de negocio.

16.18 Qué debes recordar de este tema

  • Las clases de equivalencia agrupan datos que deberían comportarse igual.
  • La técnica ayuda a elegir datos representativos sin probar todo.
  • Debemos identificar clases válidas e inválidas.
  • Un representante de cada clase puede convertirse en un caso de prueba.
  • No todas las entradas válidas pertenecen necesariamente a la misma clase.
  • Las reglas combinadas pueden requerir técnicas adicionales.
  • Las clases de equivalencia se complementan muy bien con valores límite.
  • La calidad de la técnica depende de entender correctamente la regla de negocio.

16.19 Conclusión

Las clases de equivalencia son una técnica fundamental para diseñar pruebas con criterio. Permiten dividir los datos en grupos representativos y seleccionar casos que aporten valor sin ejecutar combinaciones innecesarias.

Esta técnica es especialmente útil en formularios, validaciones, permisos, estados, rangos numéricos y reglas de negocio. Su mayor fuerza está en ordenar el análisis de datos válidos e inválidos.

En el próximo tema estudiaremos valores límite, una técnica complementaria que se enfoca en los bordes donde suelen aparecer muchos defectos.