X
BLOG

¿Qué es la virtualización de servicios? - Herramientas y ejemplos de pruebas

¿Qué es la virtualización de servicios? - Herramientas y ejemplos de pruebas Tiempo de leer: 4 minutos
¿Qué es la virtualización de servicios? Siga leyendo para saber cómo puede utilizar la virtualización de servicios para acceder fácilmente a los componentes que impiden el desarrollo y las pruebas.

La virtualización de servicios se está convirtiendo en un componente crítico de las estrategias de prueba de nuestros clientes y, como tal, tendemos a recibir muchas preguntas al respecto. A continuación se ofrecen algunas explicaciones.

Definición de virtualización de servicios

En una palabra, 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 de los procesos proporcionando un acceso rápido a sistemas dependientes en evolución, no disponibles o de difícil acceso. Según lo declarado por Wikipedia virtualización de servicios entrada, estos sistemas dependientes pueden ser:

  • No completado aún
  • Sigue evolucionando
  • Controlado por un tercero o socio
  • Disponible para pruebas solo en capacidad limitada o en momentos inconvenientes
  • Difícil de aprovisionar o configurar en un entorno de prueba
  • Necesario para el acceso simultáneo de diferentes equipos con una configuración de datos de prueba variada y otros requisitos
  • Uso restringido o costoso para pruebas de carga y rendimiento

La entrada de Wikipedia continúa describiendo esto bien:

En lugar de virtualizar sistemas completos, virtualiza solo porciones específicas de comportamiento dependiente 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 espere 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.).

¿Por qué es importante la virtualización de servicios?

Para lograr calidad a gran velocidad, es esencial tener acceso sin restricciones a un entorno de prueba realista y confiable. Es importante reconocer que un entorno de prueba completo incluye la aplicación bajo prueba (AUT) y todos sus componentes dependientes (por ejemplo, API, servicios de terceros, bases de datos, aplicaciones y otros puntos finales).

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, pero no vamos a entrar tanto en eso hoy.

Obtener acceso a un entorno de prueba completo

Con los rápidos ciclos de desarrollo iterativos de hoy, los equipos de DevTest necesitan acceso temprano a un entorno de prueba completo para:

  • Valide la funcionalidad de cada historia de usuario tan pronto como se complete
  • Valide el impacto de cada historia de usuario tan pronto como se complete
  • Realice pruebas más completas al principio del proceso
  • Complete sus propias tareas de DevTest incluso si otro equipo está implementando o evolucionando un componente dependiente en paralelo con la iteración actual

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:

  • Moderadamente (o más) difícil de acceder para realizar pruebas, por ejemplo, debido a conflictos de programación, tarifas de acceso, licencias, límites geopolíticos, etc.
  • Moderadamente (o más) complejo de configurar para pruebas

Por ejemplo, un servicio interno puede ser fácilmente accesible desde un entorno de prueba por etapas y simple de configurar. Por otro lado, una cola de mensajes compleja es probablemente más difícil de soportar 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 de mainframe o ERP tendrá múltiples restricciones asociadas con el acceso a DevTest, así como distintas limitaciones en su capacidad para configurarlo para la prueba. Aprovechar la virtualización de servicios garantiza que se pueda acceder a un entorno de prueba bajo demanda. Elimina las restricciones de acceso y reduce la sobrecarga asociada con la configuración repetida.

Alterando el comportamiento de componentes dependientes

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.

Con 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:

  • Compruebe cómo responde su AUT a las variaciones de rendimiento en las dependencias. ¿Pueden los usuarios completar transacciones centrales incluso cuando una dependencia experimenta una alta latencia? ¿Los escenarios de baja latencia exponen problemas de simultaneidad?
  • Aísle el componente bajo prueba para comprender si un comportamiento inesperado se debe a problemas con las dependencias o a su AUT
  • Configure el entorno de prueba completo en diferentes estados y valide la seguridad y resistencia de su AUT en esos contextos

Alterar los datos de los componentes dependientes

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:

  • Los equipos de desarrollo que desean protegerse contra respuestas mal formadas o comportamientos negativos en su aplicación pueden generar respuestas de servicio que generen un comportamiento negativo.
  • Los equipos de prueba que desean validar cómo el servicio maneja las respuestas no nominales pueden devolver caracteres ilegales en la respuesta.
  • Los equipos de rendimiento que desean comprender el impacto de las respuestas de gran carga útil pueden proporcionar respuestas más grandes de lo normal de los componentes dependientes.

Al simular los diferentes datos de servicio en este tipo de situaciones, puede obtener mucha más flexibilidad con sus pruebas.

Beneficios prácticos de la virtualización de servicios

Por supuesto, acabamos de arañar la superficie aquí. Hay muchos beneficios de implementar virtualización de servicios en su organización. Las empresas que han adoptado la práctica de prueba de vanguardia de la virtualización de servicios informan menos defectos, mejor cobertura de pruebas, mayores tasas de ejecución de pruebas y mucho menos tiempo dedicado a las pruebas.

Buen dato: puedes descargar Parasoft's solución de virtualización de servicios empresariales de forma gratuita.

Escrito por

Chris Colosimo

Como Gerente de Producto en Parasoft, Chris elabora estrategias para el desarrollo de productos de las soluciones de pruebas funcionales de Parasoft. Su experiencia en la aceleración de SDLC a través de la automatización lo ha llevado a implementaciones empresariales importantes, como Capital One y CareFirst.

Reciba las últimas noticias y recursos sobre pruebas de software en su bandeja de entrada.

Prueba Parasoft