¿Por qué importan las técnicas de diseño?

El capítulo 4 del syllabus CTFL es el más extenso y el que más preguntas genera en el examen (aproximadamente el 28% del total). Las técnicas de diseño de pruebas son herramientas sistemáticas que permiten identificar casos de prueba efectivos sin necesidad de probar todas las combinaciones posibles — algo inviable en cualquier sistema real.

Las técnicas se dividen en tres grandes grupos: técnicas de caja negra (basadas en la especificación), técnicas de caja blanca (basadas en la estructura del código) y técnicas basadas en la experiencia.

Técnicas de caja negra

Las técnicas de caja negra diseñan pruebas a partir del comportamiento esperado del sistema (especificación, requisitos, historias de usuario), sin conocer ni acceder al código interno.

Partición de equivalencia (EP)

Divide los datos de entrada y salida en particiones (clases) cuyos elementos se espera que sean procesados de la misma manera por el sistema. Si un valor representa correctamente a toda su clase, no es necesario probar todos los demás.

  • Particiones válidas: valores que el sistema debería aceptar y procesar correctamente.
  • Particiones inválidas: valores que el sistema debería rechazar.
  • Criterio de cobertura: probar al menos un valor de cada partición.
  • Reduce drásticamente el número de casos de prueba sin perder cobertura.

Análisis de valores límite (BVA)

Complementa la partición de equivalencia centrándose en los valores frontera entre particiones, donde estadísticamente ocurren más defectos. Existen dos versiones: BVA de 2 valores (límite y el valor justo dentro de la partición adyacente) y BVA de 3 valores.

  • BVA de 2 valores: para cada límite, probar el valor límite y el valor justo al otro lado.
  • BVA de 3 valores: probar el valor anterior, el límite y el valor siguiente.
  • Especialmente útil para rangos numéricos y condiciones de contorno.

Tabla de decisión

Ideal para sistemas con lógica de negocio compleja donde el comportamiento depende de múltiples condiciones combinadas. La tabla enumera todas las combinaciones posibles de condiciones y el resultado esperado para cada una.

  • Columnas: una por cada combinación de condiciones.
  • Filas superiores: condiciones (verdadero/falso) o valores de entrada.
  • Filas inferiores: acciones o resultados esperados.
  • Garantiza que no se pasa por alto ninguna combinación relevante.

Transición de estados

Útil para sistemas que tienen comportamiento diferente según su estado actual. Modela el sistema como un conjunto de estados, transiciones (eventos que cambian el estado) y acciones.

  • Cobertura de todos los estados: asegurar que se visita cada estado al menos una vez.
  • Cobertura de todas las transiciones válidas.
  • Cobertura de transiciones inválidas (probar que el sistema rechaza transiciones no permitidas).

Técnicas de caja blanca

Las técnicas de caja blanca diseñan pruebas basándose en la estructura interna del código. Requieren acceso y comprensión del código fuente.

  • Cobertura de sentencias: ejecutar cada sentencia del código al menos una vez. Criterio mínimo.
  • Cobertura de ramas: ejecutar cada rama de cada decisión al menos una vez (más fuerte que la cobertura de sentencias).
  • La cobertura de ramas al 100% implica cobertura de sentencias al 100%, pero no al revés.

Técnicas basadas en la experiencia

Complementan las técnicas formales con el conocimiento, intuición y experiencia del tester.

  • Suposición de errores (Error Guessing): identificar defectos probables basándose en la experiencia con sistemas similares.
  • Testing exploratorio: diseñar y ejecutar pruebas simultáneamente, guiados por el aprendizaje continuo del sistema.
  • Testing basado en listas de comprobación: usar checklists estandarizados para asegurar cobertura consistente.

Pon a prueba lo que acabas de leer

El simulador tiene 478 preguntas con explicación razonada, y los apuntes por capítulo resumen el syllabus entero. Todo gratis y sin registro.

Seguir leyendo