Diez razones por las cuales la virtualización de servicios es mejor que las pruebas mock y stub

Las pruebas stub y mock funcionan perfecto como pruebas unitarias. ¿Pero qué sucede cuando un sistema es demasiado complicado para hacer un mock o un stub? ¿O cuando necesita probar una API o un servicio de tercero? ¿De qué manera Control de calidad probará el código si las dependencias no están disponibles? ¿Cómo puede probarse el rendimiento del código usando condiciones reales antes en el ciclo de desarrollo?

Ya estamos en 2017. Es hora de hacer listas de resolución, poner los nuevos planes en acción y, si usted es un fanático del fútbol americano... disfrutar de los juegos finales. Además de ser el año en el que los Dallas Cowboys posiblemente lleguen al Super Bowl por primera vez en 21 años, el 2017 marcará el décimo aniversario en el que iTKO (ahora CA) introdujo la virtualización de servicios en el mercado. No voy a delatar mi edad, pero recuerdo que al principio pasaba los primeros 30 minutos de las reuniones con clientes explicando las diferencias entre virtualización de hardware y virtualización de servicios. Al menos esa conversación ya no la tengo más.

Si bien la virtualización de servicios se ha convertido en una capacidad que ya todos comprenden en el espacio de desarrollo de aplicaciones de software (incluso hay libros sobre el tema; mi preferido es Service Virtualization: Reality Is Overrated), dónde y cómo aprovechar mejor la virtualización de servicios sigue siendo un interrogante para muchos clientes. Paso bastante tiempo hablando con clientes sobre cómo pueden aprovechar la virtualización de servicios en SDLC en lugar de hacer que desarrollo cree pruebas mock y stub, y que luego Control de calidad tenga que aprovechar la virtualización de servicios más adelante en el ciclo de vida.

Con los juegos finales de la NFL en plena acción, empecé a pensar: ¿De qué manera entrenan los mejores equipos de fútbol americano para siempre conseguir los mejores resultados? Está bien, se deduce que esto empieza con personas en perfectas condiciones físicas y esforzándose fuera y dentro de la temporada. Pero como muchos perdedores han demostrado a lo largo de los años (pienso en los Rams en 2002, los Giants en 2008 y, por supuesto, los Jets en 1969), contar con algunos Pro Bowlers no es suficiente para terminar en el primer puesto. Además del talento individual, se necesita colaboración, una visión compartida y un conjunto de jugadas bien pensadas que el equipo ejecute de manera constante.  

Una atrapada con una mano para un touchdown es una jugada INDIVIDUAL excepcional, pero no forma la base de jugadas constantes que un equipo ejecuta semana tras semana, que mejore y perfeccione, y que eventualmente les permita llegar al Super Bowl. De manera similar, las empresas exitosas en la economía de las aplicaciones tienen un increíble conjunto de jugadas que mejoran y ejecutan de manera constante y continua. Sin importar cuán buenos sean sus desarrolladores con las simulaciones y disociaciones, estos son esfuerzos individuales que no pueden usarse como jugadas consecuentes para que su equipo aproveche cada día, semana o mes para acelerar la entrega y llevar la innovación al mercado con mayor rapidez.  

No quiere decir que no pueda crear una prueba mock o stub para continuar con sus iniciativas de desarrollo, ¿pero POR QUÉ hacerlo cuando existen herramientas mejores y más rápidas para generar resultados de mayor calidad? Si está usando la virtualización de servicios en cualquier lugar en su SDLC, debería estar usándola en (casi) TODOS LADOS en su SDLC.

Uno de los usos originales de CA Service Virtualization fue permitir el desarrollo paralelo, es decir, dejar que los desarrolladores creen nuevas funcionalidades para que sus aplicaciones generen nuevos ingresos o diferenciación competitiva en lugar de perder tiempo programando un mock o stub. Esto no solo es una pérdida de tiempo, sino que el problema mayor es que el beneficio de ese activo es mínimo y fugaz. La virtualización de servicios debe usarse en el momento de desarrollo, al igual que debería usarse durante las diversas fases de prueba. Y el activo creado en el desarrollo debe usarse en la prueba. Puede invocarse como parte de un proceso continuo de prueba o integración que genera la aceleración constante de aplicaciones.

La alternativa eran las clásicas pruebas mock y stub. Al final, adquirimos CA Service Virtualization, debido a su naturaleza empresarial. Jugó un papel importante en tener un lugar centralizado para simulaciones donde podemos mantenerlas, reutilizarlas y extenderlas.

Profesional de TI, Empresa mediana de servicios financieros empresariales

Aquí encontrará algunos beneficios que obtendrá al usar una plataforma como CA Service Virtualization y CA Application Test que no obtendrá de mocks y stubs:

  • Reutilización de servicios virtuales y colaboración entre equipos de desarrollo y prueba, en lugar de que cada equipo de aplicaciones cree sus propios mocks y stubs
  • Múltiples formas de crear automáticamente servicios virtuales: grabación de servicios, pares de solicitud-respuesta, servicios virtuales impulsados por datos y Swagger
  • Pruebas completas de lógica comercial de aplicaciones
  • Secuencias y fechas mágicas en lugar de información estática
  • Mayor realismo y cantidad de pruebas de rendimiento
  • Herramientas eficientes para editar y administrar servicios virtuales que reducen el tiempo de mantenimiento y los costos de desarrollo
  • La posibilidad de realizar pruebas continuas al automatizar el suministro de servicios virtuales para pruebas
  • La capacidad de virtualizar y desensibilizar datos de prueba en las iniciativas de prueba y desarrollo en las primeras etapas
  • La capacidad de simular transacciones y conexiones que los mocks y los stubs no pueden: mainframes, bases de datos y servicios de terceros
  • Acceso a más sistemas y servicios virtualizando cosas que son imposibles o que consumen mucho tiempo para un mock o stub: sistemas complejos, API de terceros y servicios que no son web

Por eso, las empresas que se toman en serio la entrega de aplicaciones de alta calidad están adoptando la virtualización de servicios en el SDLC. Para muchas empresas, la virtualización de servicios ya no es una decisión tecnológica, sino una comercial.

Un gran ejemplo de esto es cómo SunTrust Bank usó CA Service Virtualization para virtualizar sus datos, servicios y servicios de terceros, y para preparar entornos de prueba. El banco obtuvo diversos resultados concretos:

  • El 53 % de requisitos demorados ahora se prueban a tiempo
  • Antes de la producción, se encontraron 18.505 defectos, con una tasa de defectos inferior al 1 % (el objetivo había sido una tasa de defectos inferior al 4 %)
  • Se logró 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
  • Se ahorraron 73.302 horas de trabajo con herramientas y automatización
  • Se cumplieron todas las iniciativas que no podían fallar

Los beneficios de la virtualización de servicios que se inicia durante el desarrollo y que se aprovecha en todo el ciclo de vida son enormes, y lo hemos estado demostrando durante 10 años. Cualquier beneficio obtenido de un mock o un stub es, en el mejor de los casos, temporal. En CA, hace rato que estamos usando el término “pruebas continuas”, y tiene sentido cuando uno considera cómo las empresas deberían estar aprovechando la virtualización de servicios. 

Es posible que no pueda predecir quién ganará el Super Bowl de este año, pero puedo predecir con total confianza que adoptar la virtualización de servicios mejorará enormemente su capacidad de entregar aplicaciones mejores y de calidad al mercado con mayor rapidez.  

Póngase en contacto con CA

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