stringtranslate.com

Prueba de todos los pares

En informática , la prueba de todos los pares o prueba por pares es un método combinatorio de prueba de software que, para cada par de parámetros de entrada a un sistema (normalmente, un algoritmo de software ), prueba todas las posibles combinaciones discretas de esos parámetros. Utilizando vectores de prueba cuidadosamente elegidos , esto se puede hacer mucho más rápido que una búsqueda exhaustiva de todas las combinaciones de todos los parámetros "paralelizando" las pruebas de pares de parámetros. [1]

Razón fundamental

En la mayoría de los casos, un único parámetro de entrada o una interacción entre dos parámetros es lo que causa los errores de un programa. [2] Los errores que implican interacciones entre tres o más parámetros son cada vez menos comunes [3] y también cada vez más costosos de encontrar; estas pruebas tienen como límite la prueba de todas las entradas posibles. [4] Por lo tanto, una técnica combinatoria para seleccionar casos de prueba como las pruebas de todos los pares es un compromiso costo-beneficio útil que permite una reducción significativa en el número de casos de prueba sin comprometer drásticamente la cobertura funcional. [5]

De manera más rigurosa, si asumimos que un caso de prueba tiene parámetros dados en un conjunto . El rango de los parámetros está dado por . Supongamos que . Observamos que el número de todos los casos de prueba posibles es a . Imaginar que el código se ocupa de las condiciones tomando solo dos parámetros a la vez, podría reducir el número de casos de prueba necesarios. [ aclaración necesaria ]

Para demostrarlo, supongamos que hay parámetros X, Y, Z. Podemos utilizar un predicado de la forma de orden 3, que toma los 3 como entrada, o más bien tres predicados diferentes de orden 2 de la forma . se pueden escribir en una forma equivalente de donde la coma denota cualquier combinación. Si el código se escribe como condiciones que toman "pares" de parámetros, entonces el conjunto de opciones de rangos puede ser un multiconjunto [ aclaración necesaria ] , porque puede haber múltiples parámetros que tengan la misma cantidad de opciones.

es uno de los máximos del multiconjunto El número de casos de prueba por pares en esta función de prueba sería:

Por lo tanto, si y entonces el número de pruebas es típicamente O( nm ), donde n y m son el número de posibilidades para cada uno de los dos parámetros con la mayor cantidad de opciones, y puede ser bastante menor que el exhaustivo ·

Pruebas n-wise

La prueba n-wise puede considerarse la forma generalizada de la prueba por pares. [ cita requerida ]

La idea es aplicar ordenación al conjunto para que también quede ordenado. Supongamos que el conjunto ordenado es una tupla:

Ahora podemos tomar el conjunto y llamarlo prueba por pares. Si generalizamos más, podemos tomar el conjunto y llamarlo prueba por 3. Finalmente, podemos decir prueba por T.

La prueba N-wise entonces sería simplemente todas las combinaciones posibles de la fórmula anterior.

Ejemplo

Tenga en cuenta los parámetros que se muestran en la siguiente tabla.

"Habilitado", "Tipo de opción" y "Categoría" tienen un rango de opciones de 2, 3 y 4, respectivamente. Una prueba exhaustiva implicaría 24 pruebas (2 x 3 x 4). Al multiplicar los dos valores más grandes (3 y 4), se indica que una prueba por pares implicaría 12 pruebas. Los casos de prueba por pares, generados por la herramienta "pict" de Microsoft, se muestran a continuación.

Véase también

Notas

  1. ^ Berger, Bernie (2003). "Pruebas eficientes con todos los pares" (PDF) . TechWell Corporation . Consultado el 21 de noviembre de 2023 .
  2. ^ Black, Rex (2007). Pruebas de software pragmáticas: cómo convertirse en un profesional de pruebas eficaz y eficiente . Nueva York: Wiley . pág. 240. ISBN. 978-0-470-12790-2.
  3. ^ Kuhn, D. Richard; Wallace, Dolores R.; Gallo, Albert M. Jr. (junio de 2004). "Interacciones de fallas de software e implicaciones para las pruebas de software" (PDF) . IEEE Transactions on Software Engineering . 30 (6): 418–421. doi :10.1109/TSE.2004.24. S2CID  206778290.
  4. ^ Kuhn, D. Richard; Kacker, Raghu N.; Yu Lei (octubre de 2010). Pruebas combinatorias prácticas. SP 800-142 (informe). Instituto Nacional de Estándares y Tecnología . doi : 10.6028/NIST.SP.800-142 .
  5. ^ IEEE 12. Actas de la 5.ª Conferencia internacional sobre pruebas y validación de software (ICST). Centro de competencia de software Hagenberg. "Diseño de pruebas: lecciones aprendidas e implicaciones prácticas" . 18 de julio de 2008. pp. 1–150. doi :10.1109/IEEESTD.2008.4578383. ISBN 978-0-7381-5746-7. {{cite book}}: |journal=ignorado ( ayuda )

Enlaces externos