Pruebe en cualquier momento y en cualquier lugar con la virtualización de servicios
Los equipos de desarrollo y pruebas enfrentan desafíos al validar sus aplicaciones debido a dependencias posteriores inestables en su aplicación. La falta de datos de prueba, las limitaciones de terceros y los costos de infraestructura pueden hacer que los servicios externos dejen de estar disponibles para las pruebas. Los objetivos de cobertura de pruebas no alcanzados provocan cuellos de botella que reducen la calidad de la aplicación y provocan defectos al final del ciclo o interrupciones de la producción.
Al aumentar su entorno de prueba con servicios simulados, los equipos pueden desarrollar más rápido y realizar pruebas antes, de manera más completa. Cuando Evaluación de soluciones de virtualización de servicios., es importante considerar varios factores para una implementación y un retorno de la inversión exitosos. En esta sesión, analizaremos características y capacidades clave que han demostrado ser exitosas en implementaciones virtuales.
El cuello de botella de los entornos de prueba inestables
Las pruebas de software son complejas. Imagine probar un simple grifo: necesita agua, tuberías y todo un sistema de plomería. De igual manera, probar incluso una sola API suele requerir la configuración de todo el sistema, incluyendo servicios internos y externos, bases de datos y sistemas heredados. Esto puede ser costoso y consumir mucho tiempo.
Imagina intentar probar un grifo sin agua. No puedes. En software, esto significa que si un servicio dependiente no está disponible o es inestable, las pruebas se detienen. Este es un problema común, especialmente con microservicios donde diferentes equipos gestionan distintos componentes. Si estos servicios no están disponibles o actualizados, las pruebas integrales se estancan.
Los problemas comunes incluyen:
Indisponibilidad de servicios de terceros: Depender de servicios externos (como procesadores de pagos o servicios de validación) que podrían no tener entornos sandbox confiables o que estén compartidos entre muchos equipos, lo que genera tiempos de inactividad.
Problemas de control de datos: Incluso si puede simular servicios, controlar los datos de prueba y simular casos extremos puede ser difícil. Es posible que los datos no estén sincronizados con la automatización de pruebas.
Desajustes de cadencia de dependencia: En las arquitecturas de microservicios, los equipos trabajan a distintos ritmos. Si no puede obtener las últimas versiones de los servicios dependientes, sus pruebas se verán bloqueadas.
Preparación para pruebas de rendimiento: Los entornos de prueba pueden carecer de datos suficientes o de latencia realista, lo que dificulta las pruebas de rendimiento.
La virtualización de servicios aborda estos problemas al permitirle crear versiones simuladas de estas dependencias, lo que le otorga control sobre su comportamiento y sus datos.
Cox Automotive y DealerTrack se enfrentaron a una tormenta de desafíos debido a la gran escala de servicios que ofrecen. Su sistema da soporte a toda la red de concesionarios, desde el contacto inicial con el cliente hasta la entrega del vehículo. La complejidad implicaba que incluso pequeños cambios tenían un efecto dominó, afectando su capacidad de realizar pruebas y provocando defectos en la producción.
Aumentar la productividad de las pruebas: Creación de servicios virtuales para simular dependencias, dándoles más control y eliminando restricciones de disponibilidad.
Habilitación de la automatización de pruebas: Garantizar que las pruebas puedan ejecutarse en cualquier momento mediante la conmutación automática a servicios virtuales cuando los servicios en vivo se vuelvan inestables.
Reducción del tiempo de inactividad: Minimizar los retrasos en las pruebas causados por interrupciones de dependencia.
Los resultados fueron significativos: la minuciosidad de las pruebas aumentó, se cumplió el objetivo de reducir los defectos escapados, la disponibilidad del sistema para las pruebas alcanzó el 99.97% y los tiempos de inactividad de las pruebas se redujeron en más del 50%.
Al elegir una solución de virtualización de servicios, es importante considerar tanto las necesidades actuales como el crecimiento futuro. Las soluciones generalmente se dividen en dos categorías:
Herramientas ligeras: Suelen ser de código abierto (como WireMock o Traffic Parrot) y son ideales para casos de uso sencillos y para una rápida puesta en marcha. Sin embargo, su mantenimiento y escalabilidad pueden resultar costosos, ya que suelen requerir una importante personalización interna y carecer del soporte del proveedor.
Herramientas empresariales: Ofrecen soporte de proveedores, gestionan una gama más amplia de protocolos y casos de uso complejos, y están diseñados para implementaciones a gran escala. Parasoft se encuentra en esta categoría.
Creación rápida de servicios virtuales: La capacidad de crear rápidamente activos virtuales, idealmente importando archivos de definición (Swagger, OpenAPI) o registrando el tráfico, es crucial para la adopción inicial.
Amplitud del soporte tecnológico: Busque soporte más allá de HTTP/REST básico, incluidos varios protocolos (MQ, TCP), formatos de mensajes (JSON, XML, Copybook) y tecnologías emergentes (IoT, microservicios).
Arquitectura ampliamente accesible: Para una adopción a escala empresarial, necesita una forma de gestionar, orquestar e implementar servicios virtuales de forma coherente. Esto incluye funciones como la administración centralizada, el acceso basado en roles y la integración con pipelines de CI/CD.
Gestión del cambio: Las API y los datos cambian. Una buena solución debería facilitar la gestión eficiente de estos cambios, por ejemplo, mediante una refactorización automatizada basada en definiciones actualizadas o permitiendo que los equipos gestionen sus propios datos de prueba de forma independiente.
Puntos clave
La virtualización de servicios ayuda a superar los desafíos relacionados con entornos de prueba inestables, no disponibles o incontrolables.
Aborda problemas con dependencias de terceros, control de datos y cadencias de desarrollo no coincidentes.
Cox Automotive mejoró significativamente la eficiencia de las pruebas y redujo los defectos utilizando la virtualización de servicios de Parasoft.
Al seleccionar una solución, tenga en cuenta la facilidad de creación, la amplitud de la tecnología, la arquitectura de acceso y las capacidades de gestión de cambios.
Centrarse en las necesidades actuales y en la escalabilidad futura para maximizar el retorno de la inversión.
Introducción a la virtualización de servicios
Para escalar eficazmente su práctica de virtualización de servicios y maximizar su valor, considere estas cuatro áreas:
Creación de activos virtuales: Permita que su equipo cree servicios virtuales de forma rápida y sencilla.
Amplitud de la tecnología: Elija una solución que admita su pila tecnológica actual y futura.
Arquitectura para el acceso y la implementación: Asegúrese de que se pueda acceder fácilmente a los servicios virtuales e implementarlos en toda su organización.
Gestión del cambio: Implemente procesos para mantener los servicios virtuales actualizados sin sobrecargar a sus equipos.
En última instancia, la virtualización de servicios ayuda a mejorar la disponibilidad, la simulación del comportamiento (incluido el rendimiento), reducir los costos y proporcionar control sobre los datos.