¿Qué Es Orthogonal Array Testing?

Orthogonal Array Testing (OAT) usa estructuras matemáticas llamadas arreglos ortogonales para generar suites de tests. Estos arreglos garantizan que cada par de valores de parámetros aparezca un número igual de veces en todos los test cases, proporcionando cobertura balanceada y uniforme.

Orígenes: Método Taguchi

OAT se originó del método Taguchi en ingeniería de calidad de manufactura. El Dr. Genichi Taguchi desarrolló arreglos ortogonales para probar eficientemente el impacto de múltiples factores en la calidad del producto. El testing de software adoptó esta técnica para diseño de tests combinatorios.

Entendiendo los Arreglos Ortogonales

Un arreglo ortogonal es una matriz donde:

  • Filas = test cases
  • Columnas = parámetros (factores)
  • Valores = niveles de cada parámetro

La propiedad clave: para cualquier dos columnas, cada par posible de valores aparece el mismo número de veces.

Notación: L_n(k^f)

  • L = Latin square (tipo de arreglo)
  • n = número de filas (test cases)
  • k = número de valores por parámetro (niveles)
  • f = número de parámetros (factores)

Ejemplo: L4(2^3) — 4 test cases, 3 parámetros, 2 valores cada uno

TestP1P2P3
1000
2011
3101
4110

Verifica cualquier dos columnas: cada par (0,0), (0,1), (1,0), (1,1) aparece exactamente una vez.

Arreglos Ortogonales Comunes

ArregloTestsParámetrosValoresExhaustivo
L4(2^3)4328
L8(2^7)872128
L9(3^4)94381
L16(2^15)1615232,768
L18(3^7)18732,187
L25(5^6)256515,625

OAT vs. Pairwise Testing

AspectoOATPairwise
CoberturaCada par aparece igualmenteCada par aparece al menos una vez
BalancePerfectamente balanceadoPuede ser desbalanceado
FlexibilidadTamaños de arreglo fijosAdaptable a cualquier número de parámetros
Valores mixtosMás difícil con niveles mixtosManeja fácilmente
OptimalidadMatemáticamente óptimoCasi óptimo (heurístico)

Seleccionando el Arreglo Correcto

Paso 1: Contar parámetros y valores por parámetro. Paso 2: Encontrar el arreglo estándar más pequeño que se ajuste. Paso 3: Si los parámetros tienen diferentes números de valores, usar arreglos de nivel mixto.

Técnicas Avanzadas de OAT

Ejemplo Real: Compatibilidad de Browsers

Parámetros: Browser (3), OS (3), Resolución (3), Idioma (3)

Usando L9(3^4):

TestBrowserOSResoluciónIdioma
1ChromeWindows1080pEN
2ChromemacOS1440pES
3ChromeLinux4KRU
4FirefoxWindows1440pRU
5FirefoxmacOS4KEN
6FirefoxLinux1080pES
7EdgeWindows4KES
8EdgemacOS1080pRU
9EdgeLinux1440pEN

9 tests en lugar de 81. Cada par de valores de cualquier dos parámetros aparece exactamente una vez.

Arreglos de Nivel Mixto

Cuando los parámetros tienen diferentes números de valores, usa arreglos ortogonales de nivel mixto:

L18(2^1 x 3^7): 18 tests para 1 parámetro binario + 7 parámetros de tres niveles.

Fuerza Más Allá de 2

OAT estándar proporciona fuerza 2 (todos los pares). Arreglos de mayor fuerza cubren triples, cuádruples:

  • Fuerza 2: Cada par cubierto → detecta defectos de interacción 2-way
  • Fuerza 3: Cada triple cubierto → detecta defectos de interacción 3-way

Mayor fuerza = más tests pero detecta defectos de interacción más raros.

Ejercicio: Aplica OAT a un Test de Configuración

Escenario: Necesitas probar una configuración de base de datos:

  • Motor DB: MySQL, PostgreSQL, SQLite (3)
  • Connection Pool: 5, 20, 100 (3)
  • Cache: Habilitado, Deshabilitado, Parcial (3)
  • Logging: Debug, Info, Error (3)

Tareas:

  1. ¿Qué arreglo ortogonal se ajusta a estos parámetros?
  2. ¿Cuántos test cases genera vs. exhaustivo?
  3. Llena la matriz de test usando L9(3^4)
  4. Verifica que cualquier dos columnas contengan los 9 pares exactamente una vez
Pista

4 parámetros x 3 valores = L9(3^4). Exhaustivo = 3^4 = 81. Mapea el arreglo estándar L9 a tus valores específicos.

Solución

Arreglo: L9(3^4) — 9 tests en lugar de 81 (89% reducción).

TestMotor DBPoolCacheLogging
1MySQL5HabilitadoDebug
2MySQL20DeshabilitadoInfo
3MySQL100ParcialError
4PostgreSQL5DeshabilitadoError
5PostgreSQL20ParcialDebug
6PostgreSQL100HabilitadoInfo
7SQLite5ParcialInfo
8SQLite20HabilitadoError
9SQLite100DeshabilitadoDebug

Cada par de cualquier dos columnas aparece exactamente una vez.

Tips de Profesional

  • Usa OAT cuando el balance importa. Si necesitas analizar estadísticamente qué factor causa fallas, el diseño balanceado de OAT es esencial.
  • Combina con BVA para selección de valores. OAT te dice qué combinaciones de parámetros probar; BVA te dice qué valores específicos usar.
  • Recurre a pairwise para conjuntos irregulares. Si tienes 12 parámetros con diferentes números de valores, herramientas pairwise como PICT son más prácticas.
  • Conoce los arreglos estándar. L4, L8, L9, L16, L18, L25, L27 cubren la mayoría de escenarios prácticos.
  • OAT reduce costos en testing de hardware. Cuando cada ejecución cuesta dinero real, la optimalidad matemática de OAT ahorra presupuesto.