Vea qué solución de pruebas de API resultó ganadora en el informe GigaOm Radar. Obtenga su informe analítico gratuito >>

Vea qué solución de pruebas de API resultó ganadora en el informe GigaOm Radar. Obtenga su informe analítico gratuito >>
Saltar a la sección
La virtualización de servicios se ha convertido en un componente vital de las pruebas de software. Continúe para aprender cómo puede usar la virtualización de servicios para obtener un fácil acceso a los componentes que impiden el desarrollo y las pruebas.
Saltar a la sección
Saltar a la sección
Como componente crítico de muchas de las estrategias de prueba de nuestros clientes, tendemos a recibir muchas preguntas sobre la virtualización de servicios. Aquí hay algunas explicaciones.
Virtualización de servicios proporciona a los equipos un fácil acceso a los componentes restringidos que impiden el desarrollo y las pruebas. Esto generalmente se manifiesta como restricciones ambientales, en las que se requieren componentes que técnicamente están fuera del alcance de las pruebas para habilitar la funcionalidad completa de un extremo a otro.
Con la virtualización de servicios, puede eliminar estas restricciones simulando esas dependencias posteriores e intercambiando la funcionalidad real con un comportamiento emulado. Cuando se hace correctamente, el sistema se comporta como si el componente real estuviera disponible.
Por lo tanto, puede eliminar las restricciones de programación al proporcionar acceso ubicuo a un entorno de prueba emulado preciso. Y puede eliminar los cuellos de botella del proceso proporcionando acceso rápido a sistemas dependientes en evolución, no disponibles o de difícil acceso. Como se indica en la entrada de virtualización de servicios de Wikipedia, estos sistemas dependientes podrían ser:
La entrada de Wikipedia continúa describiendo esto bien:
En lugar de virtualizar sistemas enteros, virtualiza solo fragmentos específicos de comportamiento dependiente que son críticos para la ejecución de tareas de desarrollo y prueba. Esto proporciona la lógica de aplicación suficiente para que los desarrolladores o evaluadores obtengan lo que necesitan sin tener que esperar a que el servicio real se complete y esté disponible.
Por ejemplo, en lugar de virtualizar una base de datos completa (y realizar toda la gestión de datos de prueba asociada, así como configurar la base de datos para cada sesión de prueba), usted monitorea cómo la aplicación interactúa con la base de datos, luego emula el comportamiento de la base de datos relacionada consultas que se pasan a la base de datos, los conjuntos de resultados correspondientes que se devuelven, etc.).
Para lograr calidad rápidamente, es esencial tener acceso ilimitado a un proveedor confiable y entorno de prueba realista. Es importante reconocer que un entorno de prueba completo incluye la aplicación bajo prueba (AUT) y todos sus componentes dependientes, como API, servicios de terceros, bases de datos, aplicaciones y otros puntos finales.
La virtualización de servicios permite a los equipos de DevTest obtener acceso a un entorno de prueba completo, que incluye todos los componentes críticos del sistema dependientes, así como alterar el comportamiento de esos componentes dependientes de formas que serían imposibles con un entorno de prueba por etapas, lo que le permite probar antes, más rápido y de manera más completa. También le permite aislar diferentes capas de la aplicación para la depuración y las pruebas de rendimiento.
Con los rápidos ciclos de desarrollo iterativos de hoy, los equipos de DevTest necesitan acceso temprano a un entorno de prueba completo para:
La virtualización de servicios puede proporcionar acceso a cualquier componente dependiente que falte o esté restringido en su entorno de prueba: servicios de terceros, API, bases de datos, mainframes, ESB y otros componentes que se comunican mediante protocolos de mensajería comunes. Los principales candidatos para la virtualización de servicios incluyen componentes dependientes que son ambos:
Por ejemplo, un servicio interno podría ser fácilmente accesible desde un entorno de prueba por etapas y fácil de configurar. Por otro lado, una cola de mensajes compleja probablemente sea más difícil de mantener en un entorno de prueba por etapas y considerablemente más difícil de configurar para la prueba. En el extremo del espectro, un sistema mainframe o ERP tendrá múltiples restricciones asociadas con el acceso a DevTest, así como limitaciones claras en su capacidad para configurarlo para pruebas. Aprovechando la virtualización de servicios garantiza que un entorno de prueba sea accesible bajo demanda. Elimina las restricciones de acceso y reduce la sobrecarga asociada con la configuración repetida. Los equipos pueden realizar pruebas prácticamente sin límites.
La virtualización de servicios también le permite controlar el comportamiento de los componentes dependientes. Es muy difícil alterar la configuración de la red o el hardware asociado con cada componente dependiente del AUT. También es bastante común enfrentarse a entornos de prueba por etapas que exhiben un rendimiento más lento del que encontraría en producción.
Usando la virtualización de servicios, tiene un mayor control sobre cómo responden las dependencias. Esto le brinda acceso bajo demanda a una gama mucho más amplia de comportamientos de dependencia (como un simulador de vuelo). Como resultado, puede evaluar el riesgo de una versión candidata de forma más rápida y precisa.
Por ejemplo, puede simular un comportamiento de dependencia diferente para:
Los servicios virtuales no necesitan responder siempre con los datos reales en el sistema real. De hecho, existen muchos beneficios al proporcionar datos inesperados de sus servicios virtuales. Los servicios virtuales están separados de sus fuentes de datos, lo que permite una flexibilidad mucho mayor en la generación de datos de respuesta que se adapten a las necesidades de los diferentes equipos, tales como:
Al simular los diferentes datos de servicio en este tipo de situaciones, puede obtener mucha más flexibilidad con sus pruebas.
Por supuesto, esto es solo el comienzo. Existen muchos beneficios de implementar la virtualización de servicios en su organización. Empresas que utilizan la virtualización de servicios reportar menos defectos, mejor cobertura de pruebas, mayores tasas de ejecución de pruebas y considerablemente menos tiempo dedicado a las pruebas.
Cómo reducir el tiempo de prueba de API con automatización impulsada por IA