lunes, 16 de enero de 2017

Técnica de algoritmo dual, pairwise testing o all-pairs testing.

Pairwise testing, también llamado algoritmo dual, es una técnica utilizada para disminuir la cantidad de casos de prueba que pueden resultar de la combinación de varios valores intentando mantener un nivel de cobertura aceptable.  Para esto se agrupan los valores posibles en duplas, tercetos, etc. y se evalúa la combinación de estos.  Esto se basa en el hecho de que la mayor parte de los errores se producen como consecuencia de la combinación de dos o más factores, es por esto que, a pesar de reducir notablemente la cantidad de casos de prueba generados, se logra mantener altos niveles de cobertura y detección de defectos .

La técnica puede resultar sencilla en la teoría, sin embargo cuando la cantidad de condiciones es muy grande se vuelve muy difícil manejarla sin el apoyo de una herramienta.  Son muchas las herramientas existentes y también lo son las prestaciones que brindan, algunas permiten por ejemplo utilizar combinaciones de n elementos en lugar de sólo dos, realizar combinaciones mezcladas en cuanto a cantidad de elementos e incluso ponderar algunas de las condiciones para darles más peso a la hora de seleccionar casos de prueba.

Supongamos que debemos probar un sistema que recibe tres parámetros: importe, descuento y retiro  con las siguientes clases de equivalencia

Importe: < 1000. >=1000;
Descuento: 25%, 35%
Retiro: en el local, Envío a domicilio

Si quisiéramos realizar todas las combinaciones posibles  para estos 6 valores necesitaríamos 2*2*2 (8)  casos de prueba.


Número de caso
Importe
Descuento
Retiro
1
< 1000
25%,
en el local
2
< 1000
25%,
Envío a domicilio
3
< 1000
35%
en el local
4
< 1000
35%
Envío a domicilio
5
>=1000
25%,
en el local
6
>=1000
25%,
Envío a domicilio
7
>=1000
35%
en el local
8
>=1000
35%
Envío a domicilio

Puede  observarse a través del ejemplo que si la cantidad de condiciones de prueba o sus valores posibles aumenta, la cantidad de casos de prueba asociados a estas lo hará de forma exponencial provocando que resulten cantidades tan grandes que resulten difícil de manejar.

Al aplicar la técnica de pairwise agruparemos dos de los valores como si de uno solo se tratase y lo combinaremos con el tercero.  De esta forma podríamos agrupar por ejemplo importe y descuento, eligiendo valores aleatorios para la combinación, por un lado y combinarlo luego con retiro.

Importe + descuento: <1000 25%, >1000 35%
Retiro: en el local, Envío a domicilio


Número de caso
Importe + Descuento
Retiro
1
<1000, 25%
en el local
2
 <1000, 25%
Envío a domicilio
3
>1000, 35%
en el local
4
>1000, 35%
Envío a domicilio

Ahora al combinar dos valores en un único parámetro, la combinación se reduce a 2*2 pasando de tener los ocho casos originales a trabajar con sólo cuatro de ellas.


En este ejemplo la técnica puede aplicarse con sencillez debido a la poca cantidad de clases de equivalencia y variables con las que estamos trabajando, pero esto será, seguramente, mucho mayor en la realidad por lo que recomiendo el uso de herramientas.  Siguiendo este link encontraran varias herramientas gratuitas y aranceladas, con interfaz gráfica o utilizables por consola junto con varios papers que hablan más profundamente sobre el tema.  También para quienes se lleven bien con el inglés les recomiendo leer este otro link

No hay comentarios:

Publicar un comentario