¡ASTQ Summit está disponible bajo demanda! Escuche a los líderes de la industria compartir cómo están brindando calidad continua. Míralo ahora >>

X

Pruebe continuamente con la virtualización de servicios

Es posible que los servicios que llama su aplicación no estén disponibles para las pruebas de carga cuando los necesite. La virtualización de servicios crea servicios virtuales estables que replican lo real.

¿Qué es la virtualización de servicios?

La virtualización de servicios es una función de las pruebas de software que puede emular las dependencias de una aplicación. Permite a los equipos de DevOps utilizar servicios virtuales generados por computadora en lugar de servicios reales para que puedan realizar pruebas con frecuencia, realizar pruebas con anticipación y reducir costos en diversas situaciones. Estos incluyen partes clave del sistema distribuido que faltan: por ejemplo, cuando los componentes dependientes son inaccesibles, escalar los entornos de capacitación y crear escenarios de incorporación de socios.

El uso de servicios virtuales con fines de prueba es más rentable que el uso de entornos de producción para esos fines. Las pruebas de API con simulación de puntos finales eliminan las posibilidades de perder datos, evitan el uso de los costosos servidores que el programa actual necesita para funcionar y permite a la empresa renunciar a las tarifas de licencia excesivas. Esto da como resultado procedimientos de prueba rápidos, precisos y menos engorrosos.

Integre la virtualización de servicios en prácticas de prueba automatizadas para las pruebas de integración continua que exigen los flujos de trabajo de DevOps.

Los beneficios de la virtualización de servicios

Para obtener los beneficios de las iniciativas Agile y DevOps, los equipos necesitan acceso instantáneo a su entorno de prueba, sin restricciones. Al aplicar la virtualización de servicios en entornos de prueba, las organizaciones pueden reducir o eliminar la dependencia de dependencias no disponibles, inestables o costosas, como servicios de terceros, bases de datos y mainframes.

Obtenga acceso en cualquier momento

Acceda a los servicios dependientes con los que su aplicación necesita interactuar para realizar pruebas precisas y exhaustivas, incluso si no están disponibles o están incompletas en el momento de la prueba.

Aislar las dependencias del servicio

Cuando no puede acceder al servicio relevante, sus interdependencias asociadas también son una caja negra. La virtualización de servicios estudia los comportamientos reales y replica dichas interdependencias en el equivalente virtual, brindando respuestas precisas.

Asegure la estabilidad de la prueba

Los servicios incompletos o inestables pueden provocar fallas y retrasos en las pruebas. Un equivalente virtual es más estable y ofrece una automatización confiable y tranquilidad durante las pruebas.

Aproveche las herramientas sin script

Los evaluadores no necesitan escribir scripts complicados. Las herramientas sin código y sin scripts permiten que participen incluso los probadores novatos. En el caso ocasional en el que las secuencias de comandos son imprescindibles, Parasoft admite una variedad de lenguajes de programación.

Replica con precisión el comportamiento del mundo real

La virtualización de servicios de Parasoft estudia las llamadas reales de la aplicación a los servicios en vivo para modelar con precisión las solicitudes y respuestas en la versión virtual. También se puede aplicar una definición de servicio para una mejor correlación.

Realice pruebas de casos negativos y de borde de manera eficaz

Es difícil hacer que un servicio dependiente se comporte intencionalmente de una manera incorrecta, pero estos extremos deben tenerse en cuenta para realizar pruebas precisas. Parasoft garantiza que el servicio virtual cumpla con una variedad de condiciones de prueba para realizar pruebas más exhaustivas.

Formas de utilizar la virtualización de servicios

Hay varias áreas que pueden aprovechar la virtualización de servicios para mejorar la productividad.

Desarrollo ágil / paralelo

Las prácticas de software modernas involucran a varios equipos de operaciones que trabajan en partes del entorno por separado y luego las juntan a través de API para formar el producto final. Cuando esperan el acceso a una parte de la aplicación, los equipos de DevOps pueden usar la virtualización de servicios para simular esas partes faltantes para que puedan continuar con el desarrollo de su aplicación.

Pruebas de rendimiento

Utilice la virtualización de servicios para asegurarse de que su aplicación pueda manejar la capacidad total que se necesita para tiempos de respuesta de alta demanda, como las ventas navideñas. A menudo, el costo de mantener un entorno de actuación en vivo está cerca de igualar el entorno de producción de una empresa. Al utilizar la virtualización de servicios, las empresas pueden simular las dependencias de las API que están probando y reducir sustancialmente el costo de las pruebas de rendimiento.

Prueba de gestión de datos

Las empresas tienen grandes cantidades de datos que forman una parte importante de sus interacciones con sus clientes, por ejemplo, un banco. Esta información puede incluir PII (información de identificación personal) como números de seguro social. No es apropiado permitir que los probadores tengan acceso a fuentes de datos de producción reales para sus propósitos. La virtualización de servicios brinda a los equipos de prueba la capacidad de generar datos sintéticamente, por ejemplo, números de seguridad social de fax con el formato adecuado, que luego pueden usar para probar funcionalidades.

Formación de los empleados

Las empresas pueden utilizar la virtualización de servicios para capacitar a los empleados en una aplicación que utilizarán en el día a día. Esto evita que los aprendices tengan que capacitarse en la versión de producción real del software, que puede estar vinculada a múltiples aplicaciones complicadas, y evita que modifiquen o eliminen datos confidenciales.

Incorporación de socios

Las empresas suelen exponer las API a clientes o socios comerciales, incluidos entornos de prueba para facilitar la integración. Mantener estos entornos de prueba para los socios tiene un costo, al igual que con cualquier otro entorno. La virtualización de servicios es una técnica excelente para ofrecer a los socios acceso a entornos sandbox de sus API a un costo menor.

Prácticas recomendadas para la virtualización de servicios

Sea consciente de la virtualización de servicios que se requiere.

No es necesario crear todo o incluso una gran parte del comportamiento real del sistema que está virtualizando; solo necesita implementar las transacciones esenciales. Y no intente emular solicitudes ad hoc. Si se encuentra con un caso de prueba incorrecto a partir de una entrada defectuosa, puede generar una transacción virtualizada que la replica.

Reconozca los casos de prueba que está apoyando.

Solo incluya comportamientos en su servicio virtual después de comprender cómo interactúan los casos con ellos. Su plan de prueba debe delinear con precisión qué transacciones incluir en la virtualización. Permita que el plan de prueba controle las transacciones que virtualizará.

Pruebe el sistema correcto.

Asegúrese de crear escenarios de prueba que proporcionen validación del sistema que está probando, no la virtualización del servicio. Simule una réplica ideal del componente dependiente. Al mismo tiempo, la virtualización debe ser lo suficientemente inteligente como para permitir que el cliente finalice un flujo de trabajo. Por ejemplo, cuando se realiza una prueba de UI para un banco, el servicio virtual solo necesita cubrir la descripción correcta de un retiro o depósito; no es necesario verificar el saldo de la cuenta.

Cada equipo debe desarrollar sus propios servicios virtuales.

Cada equipo tiene sus requisitos individuales y cuando crean sus propias versiones de activos virtuales, no se produce ningún daño si se produce alguna redundancia. Intentar crear virtualizaciones de servicios que deben usar varios equipos solo genera otro servicio limitado. La mejor práctica es que el equipo que desarrolló el servicio real también cree el servicio virtual porque tiene la experiencia local.

No utilices respuestas aleatorias.

Las respuestas aleatorias no producirán una prueba funcional duplicable. Si necesita variar los datos que recibe de una determinada solicitud, la mejor manera es crear un conjunto de respuestas que no cambie para un grupo de entradas comparables. En su lugar, varíe la difusión del tráfico con entradas aleatorias.

Evite las sobrecargas de datos.

Hacer coincidir múltiples demandas de transacciones que tienen exactamente la misma respuesta significa un alto mantenimiento. Por ejemplo, haga coincidir solo el último dígito de un número de cuenta. La asignación de varios números de cuenta únicos a una sola transacción soluciona el problema del almacenamiento en caché de la base de datos de pruebas de rendimiento.

Asegúrese de que su aplicación aborde las fallas.

La mayoría de los planes de prueba tienen menos escenarios de cobertura de prueba positivos y más negativos. Esto ayuda cuando los desarrolladores detectan excepciones. Puede reconocer más fácilmente situaciones de falla en un caso de prueba limitado en lugar de en situaciones de todo el sistema.

Deje que el consumidor cree los servicios virtuales.

Los consumidores comprenden los comportamientos de los que dependen. En un entorno SOA (arquitectura orientada a servicios) normal, el propietario del servicio no lo sabe. Por lo tanto, una relación cercana con el propietario del servicio sigue siendo esencial porque, como se mencionó, la experiencia local puede permitir servicios más inteligentes y escalables.

Ejemplo de virtualización de datos

La mayoría de las empresas almacenan datos en muchas ubicaciones diferentes, desde el hardware en sus instalaciones hasta la nube. Esta información está adaptada de múltiples aplicaciones y formatos de archivo. La virtualización de servicios permite que cualquier aplicación acceda a datos relevantes independientemente del formato, la fuente o la ubicación.

La virtualización de servicios en este caso es una capa de software entre las aplicaciones que accede a los sistemas de almacenamiento y los datos que contienen. La capa interpreta la consulta o solicitud de datos de una aplicación según sea necesario y proporciona resultados que cubren múltiples sistemas.

Nota: Los datos de prueba de fabricación pueden resultar difíciles debido a todos los componentes de software que dependen de su validez. Una vez que se consumen los datos de prueba, no se pueden volver a utilizar hasta que se revierte el estado del sistema. Con la virtualización de servicios, los datos de prueba virtuales pueden "crecer" en función de una pequeña muestra y restricciones inferidas. Estos datos se pueden reutilizar y regenerar bajo demanda.

Captura de pantalla de Parasoft Virtualize en CTP

Cómo comenzar con la virtualización de servicios

Captura de pantalla de las implementaciones de virtualización de servicios de Parasoft y notificaciones de eventos.

Para empezar, es mejor discutir con un profesional de Parasoft cómo satisfacer las necesidades de su negocio con la experiencia en virtualización de servicios que Parasoft tiene para ofrecer. Después de determinar sus necesidades, asignamos un equipo de virtualización de servicios para abordar esas necesidades. El equipo trabaja con su empresa para desarrollar un plan general y el mejor enfoque que incluye casos de prueba para obtener los datos necesarios para resolver los problemas antes de que sucedan, que es uno de los principales beneficios de la virtualización de servicios.

¿Quieres aprender más? Lea nuestra útil guía para encontrar el punto de partida de virtualización de servicios ideal para su equipo e identificar el mejor modelo de implementación para sus requisitos. Y consulte nuestras opciones de implementación.

¿Cómo ayuda Parasoft?

Haga que las pruebas continuas sean más fáciles y rápidas con la virtualización de servicios. La plataforma de virtualización de servicios de Parasoft permite al desarrollador o evaluador integrar las pruebas automatizadas en las primeras etapas del desarrollo de software, al tiempo que ofrece servicios virtuales y estables cuando y cuando sea necesario.

Escale fácilmente de un solo usuario a una implementación completa de DevOps en todos los equipos. Reduzca la sobrecarga de pruebas y desarrollo de software construyendo integraciones antes y estabilizando las dependencias.

Evite la sobrecarga de las pruebas con entornos de producción. Simule servicios que de otro modo serían inaccesibles o inestables en entornos Agile DevOps.

Preguntas Frecuentes

Algunas organizaciones no lo hacen, especialmente si no están bajo grandes presiones de plazos o si ya tienen acceso a entornos de prueba completos. Pero las grandes empresas que tienen sistemas complejos que funcionan de manera interdependiente pueden obtener importantes beneficios, como:

  • Reducir los gastos operativos mediante la reducción de los tiempos de espera y de configuración y la eliminación de las tarifas de acceso.
  • Reducir los gastos de capital porque las empresas utilizan menos hardware, menos recursos de laboratorio y menos licencias.
  • Reducir el riesgo porque los equipos de desarrollo prueban antes, más rápido y de manera más completa.
  • Incrementar los ingresos impulsando la innovación y acelerando el tiempo de comercialización.

La virtualización de servicios va más allá de los stubs y las simulaciones al crear una simulación más completa de servicios y API. Los stubs son solo pequeñas rutinas del sistema que no involucran a todo el programa. Los simulacros imitan el código real, pero no todo el programa. La virtualización de servicios, por otro lado, brinda la capacidad de probar una aplicación de un extremo a otro. También tiene las ventajas de simular un comportamiento real, no utilizar datos reales y grandes cantidades de espacio en el servidor y, sin embargo, obtener información completa que ayuda a evitar fallas y errores.

Las herramientas de prueba de virtualización de servicios brindan respuestas simuladas realistas para todos los sistemas que tienen un protocolo normal o personalizado que involucra comunicación y mensajería. Estos incluyen ERP grandes como SAP, mainframes, bases de datos, redes móviles, UI y aplicaciones de terceros, por nombrar algunos.