Pruebas combinatorias
Feb 24, 2020
Introducción:
Hoy en día, los sistemas de software son diversos y complejos y tienen muchas configuraciones posibles. Estas cualidades y características en los sistemas de software han inaugurado una demanda de software y aplicaciones que están diseñadas de forma única y tienen características innovadoras y creativas. Aparte de esto, los clientes y usuarios también exigen rendimiento exponencial, funcionalidad, calidad, escalabilidad, efectividad y más. Para lograr estos objetivos y satisfacer las demandas de los clientes y consumidores, los ingenieros de software utilizan diversas técnicas y metodologías innovadoras para desarrollar un producto, así como para realizar pruebas rigurosas, ya que los productos lanzados con pruebas inadecuadas pueden causar daños y pérdidas irreparables al cliente, así como al usuario que está instalando la aplicación o utilizando el software. Además, también puede causar daños corporales, que pueden resultar en grandes pérdidas económicas o brechas de seguridad, así como afectar la calidad de la vida cotidiana. Sin embargo, los probadores de software a menudo tienen un tiempo y presupuesto limitados, lo que a menudo hace que sea imposible probar exhaustivamente el software. Además, los evaluadores a menudo prueban intuitivamente los defectos que anticipan, mientras que los defectos menos previstos se pasan por alto y no se prueban. La mejor manera de superar tal situación es implementar pruebas Combinatorias en software y aplicaciones. Las pruebas combinatorias son un enfoque que puede examinar sistemáticamente la configuración del sistema en un número manejable de pruebas y cubriendo sistemáticamente las interacciones en t. Por lo tanto, aquí está una discusión expuesta sobre las Pruebas Combinatorias, para definir su significado, métodos y otras cualidades principales.
Descripción de las pruebas combinatorias:
Las pruebas combinatorias ahora son un enfoque práctico que produce pruebas de alta calidad a un costo menor. Descompone la fuerza bruta en pasos para atacar el problema de forma incremental al separar las actividades de análisis y síntesis que se pueden cuantificar y monitorear, y parcialmente apoyadas por herramientas. Además, las pruebas combinatorias son extremadamente fáciles de aplicar. Como técnica basada en especificaciones, no requiere conocimiento sobre la implementación bajo prueba. Las pruebas combinatorias se basan en la premisa de que muchos errores en el software solo pueden surgir de la interacción de dos o más parámetros. Por lo tanto, la prueba combinatoria es una técnica eficaz para probar software con múltiples parámetros de configuración. Se utiliza principalmente para detectar fallas de interacción causadas por la combinación de parámetros. El tipo de ensayo generado por ensayos combinatorios tiene por objeto generar una cobertura que cubra todas las combinaciones de parámetros de vías en t, donde ” t ” es una resistencia de cobertura dada. Las pruebas combinatorias básicas se pueden usar de dos maneras, que se pueden usar por separado o al mismo tiempo. Estas formas son:
- Combinaciones de valores o parámetros de configuración, en los que los arrays de cobertura se utilizan para seleccionar los valores de parámetros configurables, posiblemente con la ayuda de las mismas pruebas que se ejecutan contra todas las combinaciones de configuración.
- Las matrices de cobertura se utilizan para seleccionar valores de datos de entrada, que luego se convierten en parte de casos de prueba completos, creando un traje de prueba para la aplicación. Aplicar esta forma de prueba combinatoria al software del mundo real es un desafío, ya que presenta un mayor grado de interacciones, para lo cual se pueden requerir pruebas muy grandes.
Métodos Utilizados Para Generar Trajes de Prueba Combinatorios:
La popularidad de las pruebas combinatorias ha aumentado notablemente en los últimos años. Debido a sus numerosas ventajas, es utilizado por probadores de software en varios niveles de prueba. Desde pruebas de modelos, unidades, integración, sistemas y aceptación hasta pruebas en blanco y negro basadas en modelos y más, los evaluadores están implementando pruebas combinatorias para obtener resultados efectivos a un ritmo rentable. Además, para generar trajes de prueba para pruebas combinatorias, los ingenieros de software utilizan una amplia gama de herramientas, lo que simplifica aún más el proceso de prueba de software. Estos trajes de prueba combinatorios proporcionan una mayor cobertura de vías en t, a pesar de que la generación de matrices de mayor cobertura de vías en t puede consumir importantes recursos computacionales y producir grandes resultados. Además, la mayoría de los algoritmos para pruebas combinatorias se centran en el caso especial de las pruebas de 2 vías. Además, para construir el traje de prueba para pruebas combinatorias manualmente, se utilizan tres métodos. Estos métodos proporcionan varias ventajas al probador y aseguran que la salida sea lo más precisa posible. Estos métodos / algoritmos son:
- Método algebraico: Ofrece construcciones eficientes con respecto al tiempo, sin embargo, es difícil producir resultados precisos en una amplia y general variedad de entradas.
- Algoritmo codicioso: Estos son el tipo de algoritmo bien estudiado para la construcción de matrices de cobertura, ya que se han encontrado relativamente eficientes en cuanto a tiempo y precisión.
- Búsqueda heurística: Búsqueda heurística particularmente aunque la aplicación de Recocido Estimulado (SA) ha proporcionado los resultados más precisos en varios casos. Este método de búsqueda local ha proporcionado muchos de los conjuntos de pruebas más pequeños para diferentes configuraciones de sistema; sin embargo, generar conjuntos de pruebas a un costo de tiempo de ejecución.
Pruebas en parejas:
Comúnmente conocido como prueba de todos los pares, la prueba de pares es un método combinatorio de prueba de software que para cada par de parámetros de entrada a un sistema, prueba todas las combinaciones discretas posibles de esos parámetros. Es una técnica de diseño de prueba que ofrece una cobertura de prueba del cien por ciento. Los errores más comunes en un programa generalmente se encuentran y se activan por un parámetro de entrada o por una interacción entre un par de parámetros. Los errores que involucran interacciones entre tres o más parámetros son progresivamente menos comunes, así como progresivamente más caros de encontrar, tales pruebas tienen como límite la prueba de todas las entradas posibles. En este caso, una técnica combinatoria para recoger casos de prueba como all pair es un compromiso de costo-beneficio muy útil que permite una reducción significativa en el número de casos de prueba sin comprometer drásticamente la cobertura funcional. Por lo tanto, la técnica de prueba en pares es inmensamente útil en el diseño de pruebas para aplicaciones que involucran múltiples parámetros. Su traje de prueba cubre todas las combinaciones y, por lo tanto, no es exhaustivo pero muy efectivo para encontrar errores. Aunque las pruebas en parejas pueden reducir drásticamente las combinaciones, siguen siendo realmente efectivas en términos de detección de fallas y, de hecho, es una técnica de diseño de prueba inteligente que promete los mejores esfuerzos de prueba y una efectividad excepcional.
Beneficios de las pruebas combinatorias:
La discusión anterior sobre las pruebas combinatorias refleja su importancia y utilidad. Es una de las técnicas de prueba de software más efectivas, ya que prueba un software con múltiples parámetros configurables. Además, con la ayuda de pruebas combinatorias, se pueden detectar fácilmente fallas de interacción causadas por la combinación de parámetros. Otra ventaja de este tipo de pruebas es que produce pruebas de alta calidad a un precio muy rentable, lo que no solo ayuda a los desarrolladores y probadores de software, sino que también beneficia a la organización para la que se está desarrollando el producto. Por lo tanto, otros beneficios de este enfoque son:
- Maneja las preocupaciones de cobertura al definir el plan de prueba.
- Permite la planificación sistemática de la prueba.
- Se puede aplicar virtualmente a cualquier software y a diferentes niveles de abstracciones.
- Mayor cobertura de pruebas con mejor garantía de calidad.
- No requiere acceso al código fuente interno SUT.
- Maximiza el valor de cada escenario probado.
- Reducción significativa del número de pruebas.
- Puede controlar riesgos y es fácil de revisar.
Conclusión:
Los sistemas de software son complejos y pueden incurrir en un número exponencial de posibles pruebas. Cualquier producto que se lanza sin las pruebas adecuadas puede ser un peligro significativo para la organización y el usuario. Por lo tanto, para garantizar que no se produzca tal situación o problema después de que se lance el software, los evaluadores de software realizan pruebas rigurosas. Además, con frecuencia utilizan pruebas combinatorias en varios niveles de prueba, ya que puede probar fácilmente el software con múltiples parámetros configurables. En resumen, las pruebas combinatorias se utilizan para detectar fallas de interacción causadas por la combinación de parámetros. La información clave que subyace a la eficacia de las pruebas combinatorias fue el resultado de una serie de estudios e investigaciones realizados por el NIST entre 1999 y 2004. Es un enfoque inmensamente útil que puede examinar sistemáticamente la configuración del sistema en un número manejable de pruebas. Es un enfoque que produce y ejecuta pruebas de alta calidad a una tasa muy rentable. Además, es una técnica de planificación de pruebas efectiva, que puede manejar las preocupaciones de cobertura lo antes posible. Por lo tanto, si un ingeniero de software desea obtener los mejores resultados de prueba, seguramente debe ejecutar pruebas combinatorias en una etapa temprana del Ciclo de Vida de Desarrollo de Software (SDLC).