Seminario web destacado: MISRA C++ 2023: todo lo que necesita saber | Vea ahora

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. Por aplicar la virtualización de servicios En los entornos de prueba, las organizaciones pueden reducir o eliminar la dependencia de dependencias no disponibles, inestables o costosas, como servicios, bases de datos y mainframes de terceros.

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.

Test 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 fines. La virtualización de servicios brinda a los equipos de prueba la capacidad de generar datos de forma sintética, por ejemplo, números de seguro social enmascarados y 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 a menudo exponen las API a los clientes o socios comerciales, incluidos los entornos de prueba para facilitar la integración. Mantener estos entornos de prueba para socios tiene un costo, al igual que con cualquier otro entorno. La virtualización de servicios es una excelente técnica para ofrecer a los socios acceso a entornos sandbox de sus API para integrarse más fácilmente 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 la 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 prueba la interfaz de usuario para un banco, el servicio virtual solo necesita cubrir la representació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 comenzar, es mejor discutir con un profesional de Parasoft cómo hacer coincidir las necesidades de su empresa 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 un mejor enfoque que incluya casos de prueba para obtener los datos necesarios para resolver 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.

Vea el valor de la virtualización de servicios

¿Quiere ver cuánto puede beneficiar la virtualización de servicios a sus procesos de prueba?

Utilice esta práctica calculadora para evaluar cómo Parasoft puede ayudarlo a disminuir el tiempo y los costos de las pruebas de aplicaciones al reducir las restricciones en el entorno.

Simplemente ingrese la cantidad de personas en sus equipos de desarrollo y prueba junto con las entradas para entornos de prueba, defectos y retrasos en la entrega. Obtendrá un cálculo que proyecta el valor de los beneficios potenciales que podría experimentar al implementar la solución de virtualización de servicios de Parasoft en su organización.

Gráfico abstracto que muestra un gráfico circular a la izquierda con una leyenda a la derecha.

Preguntas Frecuentes