La generación de configuración de pruebas es una parte importante del proceso de diseño de pruebas combinatorias. El proceso de diseño combinatorio se muestra en la siguiente figura:
Como se puede ver en la figura anterior, el proceso de diseño de prueba combinatoria tiene 3 pasos principales:
- Modelado del espacio de entrada y del espacio de configuración.
- Generación de un objeto combinatorio con la ayuda de un procedimiento de diseño combinatorio. El objeto combinatorio obtenido es una array de factores y niveles.
- Generación de un conjunto de prueba o configuración de prueba utilizando el objeto combinatorio.
Nota:
Las variables de entrada se denominan factores y los valores que se pueden asignar a un factor se denominan nivel .
Algoritmo de diseño de prueba:
para diseñar configuraciones de prueba, utilizamos un algoritmo de diseño de prueba. Este algoritmo toma como entrada un número n de factores (variables de entrada) y genera un conjunto de combinaciones de factores de manera que se cubren todos los pares de niveles. El algoritmo de diseño de prueba tiene los siguientes pasos:
- Vuelva a etiquetar los factores:
los factores dados primero deben volver a etiquetarse como F1, F2, F3, ….. Fn tal que:|F1| >= |F2| >= |F3| >= .........|Fn-1| >= |Fn| Let b = |F1| and k = |F2| Here, |Fi| is the number of levels in Factor Fi
- Prepare una tabla:
cree una tabla que contenga n número de columnas etiquetadas como F1, F2, F3, …..Fn y (bxk) número de filas divididas en b número de bloques. Aquí, cada bloque contiene k número de filas. A continuación se muestra una tabla de muestra para n = b = k = 3: - Rellene las columnas F1 y F2:
Rellenamos la columna F1 con 1s en el Bloque 1, 2s en el Bloque 2, y de manera similar para otros bloques. Para la columna F2, llenamos el bloque 1 con la secuencia 1, 2, 3…. k en las filas 1 a k y repita esto para el resto de los bloques. A continuación se muestra una tabla de muestra: - Encuentre MOLS de orden k y complete el resto de las columnas:
Antes de completar las columnas, primero debemos entender MOLS y cómo encontrarlos.MOLS (Cuadrados latinos mutuamente ortogonales) se utilizan para seleccionar un subconjunto de combinaciones de factores de un conjunto completo. Un cuadrado latino de orden n es una array nxn donde ningún elemento aparece más de una vez en una fila y columna.
Ejemplo-1:
Si S = {X, Y}, entonces los cuadrados latinos de orden 2 serán:X Y Y X and Y X X Y
Ejemplo-2:
Si S = {1, 2, 3}, entonces los cuadrados latinos de orden 3 serán:1 2 3 2 3 1 3 1 2 and 2 3 1 1 2 3 3 1 2 and 2 1 3 3 2 1 1 3 2
Para construir un cuadrado latino, cree la primera fila con n elementos distintos y complete las filas adicionales permutando la primera fila. Por ejemplo,
Si S = {1, 2, 3, 4}, entonces un cuadrado latino podría ser:
1 2 3 4 2 3 4 1 3 4 1 2 4 1 2 3
Para crear MOLS , sean M1 y M2 dos cuadrados latinos, cada uno de orden n.
Sean M1 ( i, j ) y M2 ( i, j ) los elementos de la i-ésima fila y la j-ésima columna en los cuadrados latinos M1 y M2 respectivamente. Ahora, creamos una array L de nxn a partir de M1 y M2 tal que L ( i, j ) es M1 ( i, j ) M2 ( i, j ), es decir, yuxtaponemos los elementos correspondientes de M1 y M2.
Si cada elemento en L aparece exactamente una vez, es decir, es único, entonces se dice que M1 y M2 son cuadrados latinos mutuamente ortogonales de orden n.
Por ejemplo,
1 2 3 2 3 1 Consider M1 = 2 3 1 and, M2 = 1 2 3 3 1 2 3 1 2
Entonces, L se construirá de la siguiente manera:
12 23 31 L = 21 32 13 33 11 22
Dado que los elementos en L son únicos, M1 y M2 son MOLS de orden 3.
Nota:
Cuando n es un número primo o una potencia de un número primo, entonces MOLS(n) contiene n -1 MOLS.
Además, MOLS no existen para n = 2 y n = 6, sin embargo, existen para todos los demás valores mayores que 2.Ahora, podemos encontrar MOLS de orden k para llenar las columnas restantes. Numere estos MOLS como M1, M2 y así sucesivamente.
Aquí, s < k para k > 1, donde s = número de MOLS de orden k. Llene el Bloque 1 de la columna F3 con elementos de la columna 1 de M1, el Bloque 2 con elementos de la columna 2 de M1, y así sucesivamente.Si b > k, reutilice las columnas de M1 para llenar filas en los bloques restantes (bk). Este proceso se repite para las columnas F4 a Fn usando MOLS M2 a Ms. Si s < n – 2, entonces podemos llenar las columnas restantes seleccionando aleatoriamente los valores de los factores.
Por ejemplo,
If n = k = 3
Entonces los MOLS de orden 3 son:
1 2 3 1 2 3 M1 = 2 3 1 and, M2 = 3 1 2 3 1 2 2 3 1
Podemos llenar las columnas restantes de la tabla usando estos MOLS. Consulte la tabla que se muestra a continuación para una mejor comprensión.
- Compruebe si se cumplen las restricciones:
si no se dan restricciones, se deben omitir los pasos 5 y 6. De lo contrario, las entradas en las filas deben marcarse con un recuadro si no satisfacen las restricciones dadas. Las restricciones se pueden dar como:- El navegador Safari solo es compatible con Mac OS.
- El navegador Firefox funciona en Windows, Linux.
- El sistema operativo Windows solo admite protocolos LAN y PPP.
- Eliminar configuraciones que no cumplan con las restricciones dadas:
Las configuraciones que están resaltadas con un cuadro en la tabla deben eliminarse. Esto se hace siguiendo un procedimiento de dos pasos para eliminarlos y conservar la cobertura por pares:- Modifique las filas resaltadas para que se mantengan las restricciones.
- Agregue nuevas configuraciones que cubran los pares que quedaron descubiertos al reemplazar las filas resaltadas.
- Reemplazar números en columnas con valores de factores dados:
en este paso, finalmente obtenemos configuraciones de prueba reemplazando valores en columnas de la tabla con los valores reales de los factores. Por ejemplo,Si F1 es un factor llamado Sistemas operativos y los niveles de F1 incluyen {MacOs, Windows, Linux}
Entonces, si la columna F1 tiene valores como:
2 3 1
Luego, deben ser reemplazados de la siguiente manera:
Windows Linux MacOS
donde Windows, Linux y MacOS representan 2, 3 y 1 respectivamente.
Después de realizar este paso para todas las columnas, la tabla obtenida contendrá las configuraciones de prueba finales.