Evaluación de una herramienta de pruebas end-to-end para microservicios implementados en Java y Node.js - Martínez Hernández, Cristian Fernando (2021)
Los microservicios han surgido como un estilo arquitectónico que ofrece muchas ventajas, pero también plantea desafíos. Uno de estos desafíos gira alrededor de las pruebas, puesto que una aplicación puede tener cientos o miles de servicios que funcionan juntos, y cada uno de ellos requiere ser probado a medida que evolucionan. Para superar este desafío, la automatización adquiere un papel clave, y junto con ella, el uso de herramientas de pruebas eficientes y eficaces. Por lo tanto, nuestra meta es contribuir a esta área mediante la evaluación de dos herramientas que apoyen las pruebas end-to-end de microservicios. Las pruebas end-to-end permiten verificar si el sistema funciona correctamente como un todo, lo cual es particularmente relevante en sistemas implementados con microservicios. En este trabajo, primero identificamos un conjunto de 40 herramientas de pruebas E2E reportadas tanto en la literatura académica como por expertos de la industria. Luego aplicamos el estándar IEEE 14102-2010 para realizar una evaluación inicial de las herramientas identificadas, con base en características que necesitan tener herramientas de pruebas end-to-end para microservicios. Las dos herramientas mejor evaluadas, Jaeger y Zipkin, fueron seleccionadas para una evaluación más a fondo de su efectividad, mediante un caso de estudio. La efectividad contempló las dimensiones de eficiencia y eficacia. Las medidas de eficiencia usadas fueron el tiempo de ejecución y el tiempo de detección de fallas. Por su parte, la eficacia fue medida en términos de la capacidad de la herramienta para detectar fallas, proveer información para inferir la severidad de las fallas, y brindar cobertura de flujo. A partir de los resultados obtenidos en nuestra primera etapa de identificación de herramientas utilizadas para pruebas end-to-end de microservicios, encontramos que muchas de las herramientas reportadas realmente no son herramientas especializadas para pruebas de microservicios, sino que son herramientas genéricas de pruebas utilizadas en el contexto de microservicios. Por este motivo, muchas de ellas carecen de las características necesarias para realizar de forma apropiada pruebas end-to-end de microservicios, que realmente brinden información valiosa a los desarrolladores que las utilicen. Por otro lado, los resultados de nuestro caso de estudio indican que la herramienta Jaeger es más eficiente y eficaz que Zipkin, puesto que en la mayoría de los escenarios de prueba exhibió menor tiempo de ejecución en las pruebas y menor tiempo en detección de fallas. También Jaeger ofrece más información que Zipkin sobre el trazado de las pruebas y dependencias entre los microservicios, lo cual ayuda a detectar fallas más fácilmente, aunque ambas proveen cobertura de flujo y detectan las fallas.