En informática , la prueba de todos los pares o la 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. Usando vectores de prueba cuidadosamente seleccionados , 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.
Razón fundamental
Los errores más comunes en un programa generalmente se desencadenan por un solo parámetro de entrada o una interacción entre pares de parámetros. [1] Los errores que involucran interacciones entre tres o más parámetros son progresivamente menos comunes [2] y también progresivamente más costosos de encontrar --- tales pruebas tienen como límite la prueba de todas las entradas posibles. [3] 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. [4]
Más rigurosamente, si asumimos que un caso de prueba tiene parámetros dados en un conjunto . El rango de los parámetros viene dado por. Supongamos que. Observamos que el número de todos los casos de prueba posibles es un. 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, suponga que hay parámetros X, Y, Z. Podemos usar un predicado de la forma de orden 3, que toma los 3 como entrada, o más bien tres predicados de orden 2 diferentes de la forma . se puede escribir en una forma equivalente de donde 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 rangospuede ser un conjunto múltiple [ aclaración necesaria ] , porque puede haber varios parámetros con el mismo número de opciones.
es uno de los máximos del multiset El número de casos de prueba por pares en esta función de prueba sería: -
Por tanto, si el y a continuación, el número de pruebas está típicamente O ( nm ), donde n y m son el número de posibilidades de cada uno de los dos parámetros con las mayoría de las opciones, y puede ser mucho menor que el exhaustiva·
Prueba de N
La prueba de N se puede considerar la forma generalizada de prueba por pares. [ cita requerida ]
La idea es aplicar la ordenación al conjunto. así que eso también se ordena. Deje que el conjunto ordenado sea un tupla: -
Ahora podemos tomar el set y llámalo prueba por pares. Generalizando más podemos tomar el conjuntoy llámelo la prueba de los 3 sabios. Eventualmente, podemos decir Pruebas en T
La prueba N-sabia sería entonces, todas las combinaciones posibles de la fórmula anterior.
Ejemplo
Considere los parámetros que se muestran en la siguiente tabla.
Nombre del parámetro | Valor 1 | Valor 2 | Valor 3 | Valor 4 |
---|---|---|---|---|
Activado | Cierto | Falso | * | * |
Tipo de elección | 1 | 2 | 3 | * |
Categoría | a | B | C | D |
'Habilitado', 'Tipo de elección' y 'Categoría' tienen un rango de elección de 2, 3 y 4, respectivamente. Una prueba exhaustiva implicaría 24 pruebas (2 x 3 x 4). Multiplicar los dos valores más grandes (3 y 4) 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.
Activado | Tipo de elección | Categoría |
---|---|---|
Cierto | 3 | a |
Cierto | 1 | D |
Falso | 1 | C |
Falso | 2 | D |
Cierto | 2 | C |
Falso | 2 | a |
Falso | 1 | a |
Falso | 3 | B |
Cierto | 2 | B |
Cierto | 3 | D |
Falso | 3 | C |
Cierto | 1 | B |
Ver también
Notas
- ^ Negro, Rex (2007). Pruebas pragmáticas de software: convertirse en un profesional de pruebas eficaz y eficiente . Nueva York: Wiley . pag. 240. ISBN 978-0-470-12790-2.
- ^ 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) . Transacciones IEEE sobre ingeniería de software . 30 (6): 418–421. doi : 10.1109 / TSE.2004.24 .
- ^ Kuhn, D. Richard; Kacker, Raghu N .; Yu Lei (octubre de 2010). Prueba combinatoria práctica. SP 800-142 (Informe). Instituto Nacional de Estándares y Tecnología . doi : 10.6028 / NIST.SP.800-142 .
- ^ 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 . IEEE STD 829-2008 . 18 de julio de 2008. págs. 1–150. Doi : 10.1109 / IEEESTD.2008.4578383 . ISBN 978-0-7381-5746-7.
enlaces externos
- Prueba por pares
- Pruebas combinatorias t-way generalizadas y por pares
- Pruebas por pares en el mundo real: extensiones prácticas para escenarios de casos de prueba