¿Está cansado de depender de otros para las pruebas de API? La virtualización de servicios puede ayudarlo.

Ahora que la "época de regalar" ha terminado, pasamos a los días en los que hay que concretar. Una de las resoluciones que los profesionales de desarrollo y pruebas deben hacer para el 2017 es perder menos tiempo y dinero accediendo a API de terceros.

Desde venta minorista y servicios financieros hasta asistencia médica, las organizaciones de diferentes sectores dependen cada vez más de API públicas, partners o proveedores externos. Estas dependencias son los cimientos de los avances en las API y en la economía de las aplicaciones de hoy, respaldadas por prácticas de desarrollo ágil y pruebas continuas.

En un informe reciente de voke Research, Informe Snapshot sobre la virtualización de servicios, más de 500 empresas validaron que las limitaciones son un obstáculo importante de la innovación en el ciclo de vida de desarrollo de software. El informe menciona que:

  • El 80 % de los equipos experimenta demoras en el desarrollo debido a limitaciones durante el SDLC
  • El 56 % de las dependencias críticas no están disponibles cuando desarrollo y prueba las necesitan
  • El 70 % de los equipos se enfrentan a restricciones prohibitivas (demoras, tiempo, costos) cuando necesitan acceder a sistemas de terceros

Creo que si a esta encuesta la volvieran a hacer hoy, incluso más clientes dirían que el acceso a API y sistemas de terceros es un obstáculo importante para acelerar las pruebas y garantizar que apps de calidad lleguen a producción.

Además del hecho de que más y más empresas están confiando en API de terceros, también se están convirtiendo en proveedores de API de terceros para sus clientes y partners. Generalmente, las pruebas son una idea tardía para quien suministra la API. El enfoque principal de cualquier API de tercero es respaldar la producción real y generar ingresos. Primero, se asigna prioridad y capacidad a actividades en vivo que generan ingresos, y luego la capacidad extra (si existiera) se usa para pruebas. También pueden cobrarse cargos adicionales para generar ingresos, lo que, según el lugar dónde se encuentre, puede ser algo bueno o no.

Por ejemplo, tomemos de ejemplo a un cliente de entrega/logística que brinda acceso a sus clientes y partners mediante API públicas en un modelo de SaaS "libre". El costo de la empresa de logística para mantener los sistemas para sus clientes y partners para acceder al sistema es significativo. A pesar de que el acceso es gratis para las API en vivo, la empresa de logística sigue recibiendo quejas de que su servicio no es tan bueno como otro porque no ofrece una forma de acceder fácilmente a las API para pruebas. Suponiendo que la capacidad adicional para pruebas merme en márgenes ya estrechos, cobrarles a los clientes por las pruebas se vería como una desventaja competitiva, por lo tanto, la pregunta es qué hacer.

Ingrese en la virtualización de servicios... qué es y cómo funciona

CA Service Virtualization resuelve los problemas de acceso a API y sistemas de terceros captándolos y modelándolos como servicios virtuales que actúan como los servicios reales. Las versiones virtualizadas brindan alternativas de bajo costo que funcionan 24/7 y que pueden usarse para pruebas funcionales y de rendimiento.

Cuando los desarrolladores y los evaluadores usan Service Virtualization, los servicios se comportan y funcionan como si fueran reales, pero sin la complejidad subyacente de hardware y software de un sistema físico. El desarrollo y las pruebas continúan de la misma forma de siempre, pero con menos limitaciones y sin discordias entre equipos por entornos, laboratorios, datos de prueba, etcétera.

El acceso a una API virtualizada de hecho puede ser mejor que lo real por un simple motivo: puede probar todo tipo de escenarios —diferentes niveles de funcionalidad, rendimiento y mantenimiento—, con un servicio virtualizado que no podría lograr con una API. Puede hacer que la API virtualizada se comporte de la forma que quiera. Y lo mejor de todo es que se pueden crear simultáneamente múltiples copias de la misma API para que varias personas puedan usar la API para pruebas al mismo tiempo.

Parece magia, ¿verdad? Bueno, en realidad, no. Así es como funciona Service Virtualization:

Paso 1: Capture la conversación

Cuando los componentes de software se comunican, usan un formato y una conversación estructurados, que también se conoce como protocolo. Dentro de esta conversación estructurada, se pueden hacer observaciones sobre elementos estáticos versus dinámicos, contenido y datos de la conversación (la carga), y otros aspectos de la relación entre los componentes que crean un entendimiento de la interacción del software.

Paso 2: Procese la conversación capturada

Aquí, la herramienta de virtualización de servicios evalúa los requisitos de las especificaciones de ingeniería proporcionadas o analiza las conversaciones capturadas entre los componentes. Este procesamiento y enfoque inteligente de los datos capturados es lo que distingue usar una herramienta como CA Service Virtualization de hacer stubs y mocks.

Paso 3: Cree un modelo utilizable

CA Service Virtualization convierte estas conversaciones capturadas y pares de solicitud/respuesta de protocolo procesados en un modelo sofisticado y dinámico que funciona de manera muy similar a lo real, y brinda cobertura de escenarios y capacidades para actividades de desarrollo y prueba de software. La herramienta de virtualización de servicios puede manejar tareas difíciles, como identificar datos dinámicos, conversaciones con estado que requieren ID de sesión y otras técnicas con estado, y observar el comportamiento dinámico y la variabilidad real de las conversaciones. Después del procesamiento, CA Service Virtualization compila una conversación en un modelo con estado (o sin estado si se desea). En este modelo, ahora podemos manejar obstáculos como procesamiento automático de datos dinámicos y de estado, incluso populando respuestas con datos de prueba "falsos" adecuados, lo que resuelve automáticamente un enorme desafío común de los clientes en torno a la administración de datos de prueba. Este paso de compilación le da al modelo la funcionalidad rica y dinámica que necesita la virtualización realista, y hace que no sea frágil ni propensa a errores cuando los desarrolladores la usan en casos y escenarios nuevos.

Si desea obtener más información sobre cómo crear servicios virtuales con grabaciones, pares R/R, WSDL y otras formas, así como ver todo lo hecho en video, puede visitar el sitio de documentación de CA Service Virtualization más reciente aquí.

Con Service Virtualization, los equipos de prueba obtienen acceso a los sistemas y servicios dependientes que necesitan para probar sin tener que esperar a desarrollo u operaciones. Supongamos que alguien necesita probar un servicio particular, y que al servicio debe implementarlo o suministrarlo un tercero, y solo después de que eso suceda, usted puede probar su parte del código. Bueno, con Service Virtualization, al usar pares de solicitud/respuesta de muestra, un evaluador puede crear, implementar y usar el servicio virtual, y dejar de depender de terceros, lo que ahorra tiempo y dinero.

Por ejemplo, CA Service Virtualization automáticamente detecta el comportamiento de fechas dinámico y puede modelar fechas para que el escenario sea preciso, independientemente de la fecha real de la transacción o de la respuesta virtualizada. Esto crea modelos que funcionan bien en el futuro, a diferencia de las pruebas stub y mock estáticas, que son frágiles o muy costosas de crear y mantener.

En una encuesta reciente de TechValidate, CA Technologies validó que el 86 % de las organizaciones de TI encuestadas estuvo de acuerdo en que una de las funcionalidades más importantes de Service Virtualization es virtualizar sistemas no disponibles o de terceros. (TVID: 631-0C3-7D6)

Una gran oportunidad para los usuarios de Service Virtualization siempre ha sido la ingeniería de rendimiento. Crear un laboratorio capaz de manejar y probar cargas de capacidad de producción es increíble, o incluso imposible y costoso, y el acceso a los sistemas de producción como mainframes y servidores de transacciones puede ser razonablemente imposible. Esto hace que las pruebas de rendimiento sean costosas y poco confiables, especialmente cuando tiene que pagarle a un tercero para que brinde una cantidad extrema de accesos de interacción.

También está la desventaja del tiempo y el costo de esperar hasta que toda la arquitectura de la aplicación esté ensamblada antes de probar el rendimiento. Los clientes que usan Service Virtualization pueden probar cada componente individual, lo que les permite identificar antes muchos problemas de rendimiento en el ciclo de vida y reducir, o incluso eliminar, la cantidad de pruebas de rendimiento finales necesarias en un laboratorio de producción. Esto esencialmente disocia la dependencia de los equipos de prueba en el acceso a sistemas de terceros.

En CA World 2016 [enlace de video], Beth Johnson, Vicepresidente Sénior de lanzamiento y pruebas de SunTrust Bank, subió al escenario y habló sobre [min 28:30] cómo el banco usa Service Virtualization para virtualizar los servicios de terceros a fin de preparar los entornos de prueba y la virtualización de datos. SunTrust Bank ha logrado lo siguiente:

  • El 53 % de los requisitos demorados ahora se prueban a tiempo
  • Mejora de la calidad: se encontraron 18.505 defectos antes de la producción, con una tasa de defectos menor al 1 %. El objetivo había sido lograr una tasa de defectos inferior al 4 %.
  • Un 22 % de ahorros de costos en servicios administrados en comparación con 2014, incluidos $1,97 millones de ahorros debido a la automatización y $900.000 en ahorros directos
  • Un ahorro de 73.302 horas con herramientas y automatización

En el mismo evento, OI Telecom de Brasil destacó el uso de Service Virtualization y pruebas de API, que le permitió ahorrar $300.000 con automatización de prueba de sus pruebas de integración y regresión. Puede leer la historia de OI Telecom en un blog aquí.

En definitiva, estas cifras de éxito y muchos otros casos de éxito de clientes consolidan el hecho de que Service Virtualization es una manera de producir aplicaciones con mayor calidad y rapidez, mientras se ahorran costos de desarrollo y prueba de API, sistemas o servicios de terceros.

Con Service Virtualization, los desarrolladores tienen sus propios entornos privados para desarrollar código. No comparten entornos y no deben esperar a que sistemas de terceros estén disponibles, y pueden realizar pruebas de rendimiento sin incurrir en altos costos de partners externos.

Además, con Service Virtualization, muchas de las pruebas a nivel de componente pueden mejorarse o adelantarse en el SDLC. Como este componente puede probarse de manera individual en lugar de esperar a un ensamblaje completo, las pruebas de unidad y regresión suceden antes y son más completas, y los defectos se identifican mucho antes de la integración o las pruebas de aceptación del usuario. Encontrar errores antes equivale a solucionar errores antes, en lugar de seguir adelante con otros proyectos antes de identificar los defectos, algo que aumenta significativamente los costos de solucionarlos.

Póngase en contacto con CA

Chat
¿Sobre qué le gustaría hablar?
Soporte
Contacto
Contáctenos 1-800-225-5224
Contáctenos