Las pruebas metamórficas (MT) son 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 la generación de casos de prueba. El problema del oráculo de prueba radica en la dificultad de determinar los resultados esperados de los casos de prueba seleccionados o de determinar si los resultados reales coinciden con los resultados esperados.
Las relaciones metamórficas (RM) son propiedades necesarias de la funcionalidad prevista del software y deben involucrar múltiples ejecuciones del software. Consideremos, por ejemplo, un programa que implementa sin x con una precisión de 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 sin x 1 para el caso de prueba fuente x 1 = 1.234 con la precisión requerida, se puede construir un caso de prueba de seguimiento x 2 = π − 1.234. Podemos verificar si las salidas reales producidas por el programa bajo prueba del caso de prueba fuente y del caso de prueba de seguimiento son consistentes con la RM en cuestión. Cualquier inconsistencia (después de tomar en consideración los errores de redondeo) indica una falla [ 1 ] : 31 del programa, causada por una falla [ 1 ] : 31 en la implementación.
Las relaciones metamórficas 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 de alojamiento en Sídney, Australia, arroja 1671 resultados; ¿son correctos y completos estos resultados? Este es un problema de oráculo de prueba. Basándonos en una relación metamórfica, podemos filtrar el rango de precios o la clasificación por estrellas y volver a realizar la búsqueda; debería devolver un subconjunto de los resultados anteriores. Una violación de esta expectativa revelaría igualmente un fallo del sistema.
Las pruebas metamórficas fueron inventadas por TY Chen en un informe técnico [ 2 ] en 1998. Desde entonces, se han publicado más de 750 artículos por investigadores y profesionales internacionales, que trabajan más en la teoría y la práctica de MT en aplicaciones de la vida real. [ 3 ] Algunos ejemplos incluyen servicios web , [ 4 ] gráficos por computadora , [ 5 ] sistemas embebidos , [ 6 ] simulación y modelado , [ 7 ] aprendizaje automático , [ 8 ] apoyo a la decisión , [ 9 ] bioinformática , [ 10 ] componentes , [ 11 ] análisis numérico , [ 12 ] compiladores , [ 13 ] e incluso computación cuántica [ 14 ] La primera encuesta importante sobre MT se realizó en 2016. [ 15 ] Le siguió otra encuesta importante en 2018, [ 16 ] que destaca los desafíos y las oportunidades y aclara malentendidos comunes.
Aunque MT se propuso inicialmente como una técnica de verificación de software , posteriormente se desarrolló como un paradigma que abarca la verificación, la validación y otros tipos de evaluación de la calidad del software . [ 17 ] MT puede aplicarse de forma independiente y también puede combinarse con otras técnicas de análisis de software estático y dinámico, como la comprobación y la depuración . [ 18 ]
En agosto de 2018, Google adquirió GraphicsFuzz, una empresa emergente del Imperial College de Londres , para aplicar pruebas metamórficas a los controladores de dispositivos gráficos para teléfonos inteligentes Android . [ 19 ] [ 20 ]
Véase también
Referencias
- 1 2 610.12-1990 - Glosario estándar de terminología de ingeniería de software de IEEE , IEEE, 1990, doi : 10.1109/IEEESTD.1990.101064 , ISBN 9781559370677
- ↑ TY Chen; SC Cheung; SM Yiu (1998), "Pruebas metamórficas: Un nuevo enfoque para generar casos de prueba adicionales", Informe técnico HKUST-CS98-01 (PDF) , Departamento de Ciencias de la Computación, Universidad de Ciencia y Tecnología de Hong Kong , Hong Kong, arXiv : 2002.12543.
- ↑ "allintitle: "prueba metamórfica" O "relación metamórfica"" . Google Académico . Consultado el 11 de julio de 2025 .
- ↑ C. Castro-Cabrera e I. Medina-Bulo, "Un enfoque para pruebas metamórficas para composiciones WS-BPEL", en Actas de la Conferencia Internacional sobre Negocios Electrónicos , IEEE (2011).
- ↑ R. Guderlei y J. Mayer, "Hacia la prueba automática de software de imágenes mediante pruebas aleatorias y metamórficas", International Journal of Software Engineering and Knowledge Engineering 17 (6): 757−781 (2007).
- ↑ TH Tse , SS Yau, WK Chan, H. Lu y TY Chen, "Pruebas de aplicaciones de software basadas en middleware sensibles al contexto", en Actas de la 28.ª Conferencia Internacional Anual sobre Software y Aplicaciones Informáticas ( COMPSAC '04 ), vol. 1, IEEE Computer Society , págs. 458-465 (2004).
- ↑ S. Segura, RM Hierons, D. Benavides y A. Ruiz-Cortes, "Generación automatizada de datos de prueba en los análisis de modelos de características: un enfoque de prueba metamórfico", en Actas de la 3.ª Conferencia Internacional sobre Pruebas, Verificación y Validación de Software ( ICST '10 ), IEEE Computer Society , págs. 35-44 (2010).
- ↑ J. Ding, X.-H. Hu y V. Gudivada, "Un marco basado en aprendizaje automático para la verificación y validación de datos de imágenes a gran escala", IEEE Transactions on Big Data (2017). doi: 10.1109/TBDATA.2017.2680460.
- ↑ F.-C. Kuo, ZQ Zhou, J. Ma y G. Zhang, "Pruebas metamórficas de sistemas de apoyo a la toma de decisiones: un estudio de caso", IET Software 4 (4): 294−301 (2010).
- ↑ LL Pullum y O. Ozmen, "Resultados preliminares de pruebas metamórficas de modelos epidemiológicos", en Actas de la Conferencia Internacional ASE/IEEE de 2012 sobre Computación Biomédica ( BioMedCom '12 ), IEEE Computer Society , págs. 62-67 (2012).
- ↑ S. Beydeda, "Componentes de autoprueba metamórfica", en Actas de la 30.ª Conferencia Internacional Anual sobre Software y Aplicaciones Informáticas ( COMPSAC '06 ), vol. 1, IEEE Computer Society , págs. 265-272 (2006).
- ↑ C. Aruna y RSR Prasad, "Relaciones metamórficas para mejorar la precisión de las pruebas de aplicaciones de software aritmético de precisión múltiple", en Actas de la Conferencia Internacional de 2014 sobre Avances en Computación, Comunicaciones e Informática ( ICACCI '14 ), IEEE (2014).
- ↑ C. Lidbury, A. Lascu, N. Chong y AF Donaldson, "Fuzzing de compiladores multinúcleo", en Actas de la 36.ª Conferencia ACM SIGPLAN sobre Diseño e Implementación de Lenguajes de Programación ( PLDI '15 ), ACM , págs. 65-76 (2015).
- ↑ M. Paltenghi; M. Pradel (2023), "MorphQ: Pruebas metamórficas de la plataforma de computación cuántica Qiskit", 2023 IEEE/ACM 45.ª Conferencia Internacional sobre Ingeniería de Software (ICSE) , ICSE '23, pp. 2413–2424 , arXiv : 2206.01111 , doi : 10.1109/ICSE48619.2023.00202 .
- ↑ S. Segura, G. Fraser, AB Sanchez y A. Ruiz-Cortes, "Una revisión sobre pruebas metamórficas", IEEE Transactions on Software Engineering 42 (9}: 805-824 (2016).
- ↑ TY Chen, F.-C. Kuo, H. Liu, P.-L. Poon, D. Towey, TH Tse y ZQ Zhou, "Pruebas metamórficas: una revisión de desafíos y oportunidades", ACM Computing Surveys 51 (1): 4:1-4:27 (2018).
- ↑ ZQ Zhou, S. Xiang y TY Chen, "Pruebas metamórficas para la evaluación de la calidad del software: un estudio de los motores de búsqueda", IEEE Transactions on Software Engineering 42 (3): 264-28s4 (2016).
- ↑ TY Chen, TH Tse y ZQ Zhou, "Semi-proving: un método integrado para la comprobación, prueba y depuración de programas", IEEE Transactions on Software Engineering 37 (1): 109-125 (2011).
- ↑ "GraphicsFuzz es adquirida por Google" . GraphicsFuzz . Mountain View, CA , EE. UU . 6 de agosto de 2018. Consultado el 23 de diciembre de 2020 .
- ↑ Frederic Lardinois (6 de agosto de 2018). "Google adquiere GraphicsFuzz, un servicio que prueba los controladores gráficos de Android" . TechCrunch . San Francisco , CA , EE. UU . Consultado el 11 de julio de 2025.
Los fundadores de la empresa comenzaron su trabajo en el Departamento de Informática del
Imperial College de Londres
y recibieron financiación del
Consejo de Investigación de Ingeniería y Ciencias Físicas
del Reino Unido y del proyecto TETRACOM de la UE.
Enlaces externos
- "Pruebas metamórficas: Introducción y aplicaciones" . Seminario web de ACM SIGSOFT .
- Sergio Segura; Zhi Quan Zhou (2018). ICSE 2018 technical briefing on metamorphic testing . International Conference on Software Engineering (ICSE 2018). doi : 10.5281/zenodo.1256230 .
- Zhi Quan (George) Zhou (9 de abril de 2019). Pruebas automatizadas de sistemas de conducción autónoma en la vida real y más allá: Discurso principal . Conferencia Internacional IEEE sobre Pruebas de Inteligencia Artificial (AI Test 2019). San Francisco East Bay, CA, EE. UU. doi : 10.5281/zenodo.2636979 .
- Pruebas de software