Solicitud de referencia: aplicación de diseños de bloques a pruebas de software

8

Comencé a buscar estructuras de incidencia y diseños combinatorios (posible motivación: para enlazar algunas estructuras en el autoensamblaje generalizado), y el artículo de Wikipedia hace la siguiente declaración interesante pero inexplicable: los diseños de bloques tienen aplicación en las pruebas de software. (La página de Wikipedia con el reclamo está aquí ).

Mi google-fu no recoge una buena referencia para esta aplicación. ¿Alguien me puede dar una pista?

Aaron Sterling
fuente

Respuestas:

8

Suponga que tiene algún software que incluye una lista de n variables s 1 , s 2 , ..., s ny suponga que cada una de estas variables puede tomar un rango de valores. Ahora suponga que desea probar el programa para interacciones bidireccionales, es decir, desea probar que el programa se ejecuta correctamente para cada par de variables s i y s j y cada valor posible que estas variables puedan tomar.

Para hacer esto mediante una fuerza bruta, procesando cada par i y j uno por uno, luego probando cada valor permitido de s i y s j (mientras selecciona los otros arbitrariamente), requeriría probar una enorme cantidad de casos.

Pero, podemos probar varias interacciones bidireccionales en una sola prueba. Por ejemplo, si tenemos tres variables s 1 , s 2 y s 3 , y probamos cuando s 1 = 1, s 2 = 2 y s 3 = 0, entonces hemos probado tres posibles interacciones bidireccionales simultáneamente.

Podemos diseñar un conjunto de pruebas para el programa basado en una matriz de cobertura : las columnas representan las variables y las filas representan la prueba específica que se realizará (por lo tanto, menos filas es mejor). En una matriz de cobertura de fuerza 2, dentro de cualquiera de las dos columnas i y j, existen todos los pares posibles de las variables s i y s j . Hay matrices de cobertura de mayor resistencia que pueden probar las interacciones t-way (pero generalmente las interacciones son el resultado de solo unos pocos componentes).

Los conjuntos de cuadrados latinos mutuamente ortogonales (y varios otros diseños de bloques) forman matrices de cobertura particularmente eficientes.

Douglas S. Stones
fuente