Pruebas metamórficas


La prueba metamórfica (MT) es una técnica de prueba de software basada en propiedades , que puede ser un enfoque eficaz para abordar el problema del oráculo de prueba y el problema de generación de casos de prueba. El problema del oráculo de prueba es la dificultad de determinar los resultados esperados de los casos de prueba seleccionados o determinar si los resultados reales concuerdan con los resultados esperados.

Las relaciones metamórficas (MR) son propiedades necesarias de la funcionalidad prevista del software y deben implicar múltiples ejecuciones del software. Considere, por ejemplo, un programa que implementa sen x correcto a 100 cifras significativas ; una relación metamórfica para funciones seno es " sin ( π − x ) = sin x ". Por lo tanto, aunque no se conoce el valor esperado de sen x 1 para el caso de prueba fuente x 1 = 1,234 correcto con la precisión requerida, un caso de prueba de seguimiento x 2 = π− 1.234 se puede construir. Podemos verificar si los resultados reales producidos por el programa bajo prueba del caso de prueba de origen y el caso de prueba de seguimiento son consistentes con el MR en cuestión. Cualquier inconsistencia (después de tomar en cuenta los errores de redondeo) indica una falla [1] : 31  del programa, causada por una falla [1] : 31  en la implementación.

Los MR no se limitan a programas con entradas numéricas o relaciones de igualdad . Por ejemplo, al probar un sitio web de reservas, una búsqueda web de alojamiento en Sydney, Australia, arroja 1.671 resultados; ¿Los resultados de esta búsqueda son correctos y completos? Este es un problema del oráculo de prueba. Con base en una relación metamórfica, podemos filtrar el rango de precios o la calificación de estrellas y aplicar la búsqueda nuevamente; debería devolver un subconjunto de los resultados anteriores. Una violación de esta expectativa también revelaría una falla del sistema.

La prueba metamórfica fue inventada por TY Chen en el informe técnico [2] en 1998. Desde entonces, más de 150 investigadores y profesionales internacionales han aplicado la técnica a aplicaciones de la vida real. Algunos ejemplos incluyen servicios web , [3] gráficos por computadora , [4] sistemas integrados , [5] simulación y modelado , [6] aprendizaje automático , [7] soporte de decisiones , [8] bioinformática , [9] componentes , [10] análisis numérico , [11] generadores de código[12] y compiladores . [13] La primera encuesta importante del campo de la TA se realizó en 2016. [14] Le siguió otra encuesta importante en 2018, [15] que destaca los desafíos y oportunidades y aclara malentendidos comunes.

Aunque MT se propuso inicialmente como una técnica de verificación de software , luego se convirtió en un paradigma que cubre verificación, validación y otros tipos de evaluación de la calidad del software . [16] MT se puede aplicar de forma independiente y también se puede combinar con otras técnicas de análisis de software estáticas y dinámicas , como la prueba y la depuración . [17]

En agosto de 2018, Google adquirió GraphicsFuzz, una startup del Imperial College London , para aplicar pruebas metamórficas a los controladores de dispositivos gráficos para teléfonos inteligentes Android . [18] [19]