Omitiré discutir aquí técnicas de diseño de pruebas bien conocidas y ampliamente utilizadas, como las clases de equivalencia, las pruebas de valor en la frontera y las pruebas por pares; discutiré otras técnicas menos comunes. También puede leer mi artículo sobre problemas con técnicas de diseño de pruebas combinatorias .
Las tablas de decisiones son una excelente herramienta para documentar requisitos y describir la funcionalidad de una aplicación. Estas tablas son muy convenientes para describir la lógica empresarial de la aplicación y, además, pueden servir como una base sólida para crear casos de prueba. Si la aplicación probada carece de la documentación adecuada, es una buena razón para utilizar tablas de decisión. Presentar los requisitos de forma compacta y sencilla facilita la creación de casos de prueba.
Acercarse:
Las tablas de decisión describen la lógica de la aplicación en función de las entidades (propiedades/condiciones) del estado del sistema. Cada tabla de decisiones solo debe describir un estado del sistema.
| regla 1 | regla 2 | … | regla norte |
---|---|---|---|---|
Entidades | | | | |
Propiedad 1 | | | | |
… | | | | |
Propiedad m | | | | |
Comportamiento | | | | |
Acción 1 | | | | |
… | | | | |
Acción P | | | | |
La entidad (propiedad) del 1 al M representa varias propiedades del sistema; se presentan en la tabla como datos de entrada que se pueden ingresar al sistema. Las acciones del 1 al P son acciones que pueden ocurrir con la combinación especificada de entidades. Dependiendo de la combinación de todos los datos de entrada de las entidades, las acciones toman los valores necesarios. Cada regla define un conjunto único de datos de entrada para todas las propiedades que conducen a la ejecución de acciones específicas.
Después de componer la tabla de decisiones, generalmente es posible simplificarla, por ejemplo, eliminando algunos o todos los escenarios imposibles. Luego, la tabla se puede transformar en casos de prueba.
Las pruebas de transición de estado, al igual que las pruebas de tablas de decisión, son una herramienta valiosa para documentar los requisitos y describir la estructura y el diseño de un sistema. A diferencia de las pruebas de tablas de decisión, que describen un estado específico del sistema, las pruebas de transición de estado describen cómo pueden cambiar estos estados del sistema. Los diagramas definen todos los eventos que ocurren durante el funcionamiento de la aplicación y cómo la aplicación responde a estos eventos.
Acercarse:
Hay dos tipos de representaciones visuales de esta técnica:
Como ejemplo, consideremos la reserva de billetes de avión. Funciona aproximadamente de la siguiente manera: inicialmente, los clientes proporcionan a la aerolínea información para la reserva: lugar de salida, destino, fecha y hora de salida. Un empleado de la aerolínea actúa como interfaz entre el cliente y el sistema de reserva de boletos, utilizando la información proporcionada por el cliente para crear una reserva. Después de eso, la reserva del cliente pasa al estado "Realizada". Además, después de crear la reserva, el sistema inicia un cronómetro. Cuando el cronómetro expira y el boleto reservado no ha sido pagado, el sistema cancela la reserva de ese boleto.
El círculo representa el estado del sistema de reserva de billetes de avión, el estado "Hecho". La flecha indica una transición al estado "Hecho". La descripción debajo de la flecha ("get_info") es un evento que se origina fuera del sistema. El comando en la descripción debajo de la flecha (después de "/") significa que el sistema realizó alguna acción en respuesta al evento; en este caso, inició un temporizador. El círculo negro indica el punto de inicio/entrada del diagrama.
Si el cronómetro no expira y hemos pagado el billete reservado, el sistema entra en estado "Pagado". Esto se representa mediante la flecha denominada "payMoney" y la transición del estado "Hecho" al estado "Pagado".
Las tablas de transición de estado son tablas que constan de cuatro columnas: Estado actual, Evento, Acción y Estado siguiente.
La ventaja de las tablas de transición de estado es que definen todos los escenarios posibles de transición de estado, no solo los correctos. Por lo tanto, las tablas de transición de estado a menudo conducen al descubrimiento de combinaciones de transición de estado indefinidas y no documentadas, que es mejor identificar antes de escribir el código.
¿Cuántas combinaciones existen para el par de valores "1" y "2"? {1,1}, {1,2}, {2,1} y {2,2}. Una matriz ortogonal es una matriz bidimensional con una propiedad especial: en dos columnas cualesquiera de la matriz, todas las combinaciones de valores en esas columnas están presentes. Es decir, si toma dos columnas cualesquiera de la matriz ortogonal, donde los valores solo pueden ser "1" o "2", encontrará las siguientes filas para esas columnas: {1,1}, {1,2}, { 2,1} y {2,2}.
Como ejemplo, considere un sistema con tres parámetros de entrada, cada uno de los cuales es binario (es decir, toma el valor "1" o "2").
filas | variable 1 | variable 2 | variable 3 |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 2 | 1 | 1 |
3 | 1 | 2 | 1 |
4 | 1 | 1 | 2 |
5 | 2 | 2 | 1 |
6 | 1 | 2 | 2 |
7 | 2 | 1 | 2 |
8 | 2 | 2 | 2 |
La matriz ortogonal se representa como - L_4(2^3), donde L_4 indica que la matriz ortogonal tiene cuatro filas y (2^3) indica que la matriz tiene tres columnas, con valores que pueden ser "1" o "2 ".
filas | variable 1 | variable 2 | variable 3 |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 1 | 2 | 2 |
3 | 2 | 1 | 2 |
4 | 2 | 2 | 1 |
L_4, donde 4 es el número de filas
2^3, donde 2 es el valor máximo (== 2, 3,…, N) y 3 es el número de columnas
Matriz ortogonal: es una matriz bidimensional con la siguiente propiedad: elija dos columnas cualesquiera de la matriz y encontrará todas las combinaciones de valores en esas columnas.
Usando matrices ortogonales:
La esencia del algoritmo AllPairs es que no es necesario probar todas las combinaciones de valores para todas las variables. En cambio, se centra en probar todas las combinaciones de valores para cada par de variables.
Como profesional de control de calidad, es importante comprender estos matices. Si bien es teórico en algunos casos, comprender la complejidad de las técnicas de diseño de pruebas combinatorias permite a los profesionales de control de calidad probar de manera efectiva la complicada lógica empresarial de las aplicaciones y ofrecer software de alta calidad a sus usuarios.