X
BLOG

Prueba cuando la API no está lista

Prueba cuando la API no está lista Tiempo de leer: 4 minutos

Con la complejidad de las aplicaciones actuales, es fácil terminar en una situación en la que todas las partes de su código no están listas al mismo tiempo. Como desarrollador, es posible que esté esperando que se actualice una API de terceros, que una organización asociada termine su código u otros equipos de su organización para tener un componente listo para comenzar a probar. Esto puede ser un lastre para todo el cronograma de lanzamiento de su organización, ya que las pruebas se respaldan a la espera de que se terminen todas las piezas.

La virtualización de servicios se diseñó teniendo esto en cuenta. Proporciona a los equipos de desarrollo y pruebas acceso ilimitado a entornos de prueba completos mediante la simulación de los componentes dependientes que, de otro modo, se perderían o esperarían.

El juego de la culpa

En un entorno ágil, los desarrolladores pueden trabajar simultáneamente en todo el código base en componentes de sistema interconectados. Cada desarrollador necesita acceder a los componentes de otros desarrolladores para completar sus propias tareas. A menudo nos encontramos con una situación en la que un desarrollador necesita respuestas del componente o API de otro desarrollador al principio del proyecto, tan pronto, a veces, que el otro desarrollador ni siquiera ha creado el código que se está llamando. Esto significa que uno, o ambos desarrolladores, estarán bloqueados hasta que se terminen ambas partes del código. En software, llamamos a esto un punto muerto.

Me enfrento a este desafío con frecuencia cuando estoy escribiendo código. Mi equipo podría estar trabajando en una aplicación web orientada al cliente, y cada sprint incluye un nuevo conjunto de historias de usuario para implementar la funcionalidad basada en los datos que obtengo de una API REST. Y casi a diario estoy atascado y no puedo trabajar en el código de mi aplicación porque una de las API de las que dependo no está funcionando. Esto puede provenir de una variedad de razones, pero generalmente tiene que ver con uno de mis colegas que introduce un error en algún lugar de su código mientras trabaja en la API.

El gran problema con esto es que estoy en una fecha límite y mi gerente está esperando que tenga este código al final del sprint. Entonces, lo que generalmente tengo que hacer es acercarme al escritorio de mi colega y revisar su código con ellos para ayudarlos a resolver el desafío al que se enfrentan. (Esto es genial ... estamos colaborando desarrolladores ... ¡qué evento tan raro!) Pero desafortunadamente lo que realmente termina sucediendo es que paso la mayor parte de mi tiempo depurando sus problemas para desbloquearme. Esto significa que terminan su código a tiempo, mientras que yo no.

Esperar el acceso a la funcionalidad dependiente acelera la agilidad. ¿Cómo se supone que debo trabajar en estas condiciones? La respuesta es simular. Puedo usar la virtualización de servicios para liberarme de estos puntos muertos y crear rápidamente un activo virtual que simule prácticamente cualquier comportamiento anticipado.

Uso de la virtualización de servicios

usaré Parasoft Virtualize para mostrarte cómo hacer esto (que ahora puedes usar gratis con la nueva Community Edition). Puede crear la simulación sin tener que realizar ningún script, ya sea en la GUI o desde un archivo de definición como WSDL. Por ejemplo, en las primeras etapas del desarrollo de la API, es posible que el WSDL o el esquema no estén disponibles y que el desarrollador solo tenga disponible una respuesta de muestra. Con Virtualize, esto es más que suficiente para comenzar. Simplemente tomo el objeto de respuesta y lo pego en un respondedor. Luego puedo activar un interruptor y la herramienta creará un esquema sobre la marcha. Esto es muy útil, porque no necesito preocuparme por enviar la carga útil correcta y, a medida que cambian los datos, Virtualize se asegurará de que la estructura de la carga útil permanezca constante cada vez que se envíe una respuesta. Esto hace que simular la respuesta sea muy fácil. El punto final se configura automáticamente y siempre está disponible. Solo necesito concentrarme en qué datos quiero que envíe la nueva respuesta. Con Virtualize, también puede modelar visualmente varios formatos de mensajes como XML, JSON y varios formatos heredados, financieros, sanitarios y otros formatos específicos de dominio.

Trabajar de esta manera con una respuesta simulada tiene grandes ventajas, la más importante de las cuales es el tiempo. Se puede configurar una respuesta de servicio simple en cuestión de minutos, en lugar de días de espera para que el servicio real esté disponible. Esto me permite comenzar a trabajar de inmediato, generar respuestas contra las cuales desarrollar y ver instantáneamente el impacto en su nuevo código. Esto me ayuda a codificar de manera más inteligente y rápida porque las condiciones que normalmente serían impredecibles se pueden probar de inmediato y la función se puede ajustar en tiempo real.

Esto es exactamente lo que hago para salir de este ciclo de espera. Cuando una de las API de backend deja de funcionar, utilizo la virtualización de servicios para simular la respuesta. Puedo poner cualquier carga útil que quiera, y sé que es precisa porque he usado una definición. También estoy seguro de que me proporcionará los datos correctos porque tengo el control. Utilizando esta tecnología me permite cumplir con mis plazos.

 

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