X
BLOG

Cómo ir más allá de grabar y reproducir para obtener mejores pruebas de API automatizadas

Cómo ir más allá de grabar y reproducir para obtener mejores pruebas de API automatizadas Tiempo de leer: 8 minutos
En lugar de simplemente recopilar tráfico, registrarlo y reproducirlo, puede usar inteligencia artificial para ayudar a organizar la actividad de la API en pruebas significativas, reutilizables y extensibles. Es una extensión de las pruebas de grabación y reproducción, pero con más automatización.

Hace un par de semanas, lanzamos una nueva capacidad en Parasoft SOAtest el llamado Generador de pruebas de API inteligente. Estaba loco. Esta tecnología es legítimamente innovadora: utiliza inteligencia artificial para convertir las pruebas de IU manuales en pruebas de API automatizadas, por lo que no necesita experiencia en pruebas de API o incluso la capacidad de escribir ningún código para comenzar. Todo no tiene secuencias de comandos y se activa a través de un simple complemento para Chrome, por lo que no tiene que instalar un gran conjunto de herramientas para usarlo.

Pero en la conferencia de pruebas STAREAST en mayo, donde di una larga charla sobre lo increíble que es esta tecnología, seguí encontrándome con personas que me preguntaban en qué se diferenciaba de las tecnologías de grabación y reproducción, que ya existen en el mercado.

Adición de IA a las pruebas de grabación y reproducción

La respuesta es inteligencia artificial y aprendizaje automático ... pero ¿por qué? La IA por el bien de la IA no tiene sentido - ¿Por qué necesitamos agregar inteligencia artificial a las pruebas de API? Bueno, lo necesitamos porque las pruebas de grabación y reproducción no son suficientes. Entraré en esto más en un momento.

Para escalar realmente la adopción de las pruebas de API y abordar los problemas que tienen los equipos de pruebas para seguir el ritmo del desarrollo, ¡necesita más! En lugar de simplemente recopilar tráfico, registrarlo y reproducirlo, queríamos poder ayudar a los usuarios a identificar y organizar automáticamente la actividad API capturada en pruebas significativas, reutilizables y extensibles. Necesitábamos reducir la barra de adopción de pruebas de API e involucrar a más probadores.

Pero primero, déjame explicarte por qué esto es tan importante.

Por qué incluso necesitamos pruebas de API

Históricamente, las organizaciones se han basado en las pruebas de IU como la práctica de prueba principal porque es fácil e intuitivo de definir y ejecutar, y fácil de automatizar, al menos inicialmente. Hay una barrera de entrada baja y puede escalar a través de un gran equipo de probadores.

Pero el desafío de esta dependencia exclusiva de las pruebas manuales y de la interfaz de usuario son los costos ocultos. Cualquiera que haya trabajado con Selenium sabe que las cosas se ponen difíciles cuando cambia la interfaz de usuario y necesita actualizar sus scripts. De hecho, hemos descubierto que hasta el 80% del tiempo de prueba se dedica a ejecutar pruebas de IU manuales o corregir pruebas de IU automatizadas que se han roto como resultado del cambio de aplicación. Además de todo eso, las pruebas de IU no se pueden ejecutar hasta que la aplicación completa esté disponible, y si se descubre un defecto, hay un alto costo de reprocesamiento porque la aplicación debe desarmarse, repararse y volver a ensamblarse antes de que se pueda realizar la prueba. Seguir. A menudo, esta detección de defectos de ciclo tardío conduce a retrasos significativos en la publicación y aumenta el costo total de las pruebas.

Complementando las pruebas de IU con las pruebas de API

Para complementar y reducir la dependencia de las pruebas de IU, las organizaciones pueden aprovechar las pruebas de API, que resuelven muchos de estos problemas al proporcionar escenarios mantenibles de un extremo a otro que se pueden reutilizar para más que solo pruebas funcionales. Las pruebas de API crean un buen canal de comunicación entre desarrolladores y evaluadores, ya que ayudan a documentar el comportamiento de la API en términos concretos y realistas. Cambiar el diagnóstico y la corrección de errores y vulnerabilidades de seguridad encontradas por las pruebas de API a una etapa más temprana del ciclo de vida tiene una gran recompensa para alcanzar los objetivos de calidad y programación.

Sin embargo, las organizaciones han tenido problemas para adoptar las pruebas de API porque incluso impresionantes herramientas de prueba de API simplemente no han proporcionado históricamente suficiente ayuda. Para utilizar las herramientas de prueba de API de manera eficaz, los evaluadores necesitan un conocimiento profundo de las API que están tratando de probar, incluida la forma en que la aplicación en cuestión utiliza las API, lo que requiere habilidades y experiencia especializadas. Y los desarrolladores no tienen tiempo para probarlos, por lo que esta práctica extremadamente beneficiosa se evita, insostenible para los probadores e indeseable para los desarrolladores.

Creación de pruebas de API a partir del tráfico ("pruebas de grabación y reproducción")

Para resolver este desafío, hace muchos años a las empresas de automatización de pruebas funcionales se les ocurrió la idea de registrar actividades de API y crear pruebas de API a partir del tráfico. Esto fue poderoso porque simplemente registrando las transacciones entre la aplicación y el sistema backend, podía capturar las actividades de las API, incluida la forma en que las llamadas a la API reestructuraron los datos que se estaban pasando.

Con esta tecnología, pudo registrar los escenarios que estaban teniendo lugar en los sistemas backend. Esto ayudó a que los usuarios no técnicos pudieran comprender qué API se llamaban y obtener una comprensión básica de los datos que se usaban a medida que se llamaba a cada una; sin embargo, la simple recopilación de tráfico no les ayudó a mejorar sus habilidades ni a aprender a mantener o escalar sus pruebas. No pudo enseñarles las habilidades técnicas requeridas para construir diferentes pruebas con todos los diferentes formatos de mensajes y protocolos utilizados por las API, y no brindó suficiente ayuda por sí solo para permitir que un usuario no técnico se acercara a la práctica. Es un largo camino entre una grabación de tráfico y un escenario de prueba de API en pleno funcionamiento.

Por qué grabar y reproducir no es suficiente

Y ahí es donde comenzamos a pensar en el siguiente paso para reducir las barreras para adoptar las pruebas de API. Nos pusimos a pensar. El simple hecho de registrar el tráfico de red entre la interfaz de usuario del probador y la aplicación de destino no es suficiente para ayudar a automatizar las pruebas de API hasta el punto en que se percibe su utilidad. Quizás sea análogo a una grabación de audio MP3. Puede reproducirlo para escuchar la canción, pero no contiene ninguna información sobre cómo se creó la canción o qué instrumentos se utilizaron. La canción no se puede modificar ni ampliar.

Considere los siguientes problemas con pruebas simples de grabación y reproducción:

¿Qué pasa si mi UI cambia?

Las interfaces de usuario cambian constantemente durante el desarrollo y el mantenimiento de la automatización de pruebas basada en la interfaz de usuario requiere mucho tiempo. Las IU solo exponen una representación determinada, posiblemente limitada, de la lógica empresarial subyacente de la aplicación, y confiar en el registro y la reproducción es tanto limitante como susceptible de romperse debido a cambios frecuentes.

¿Cuál es el tráfico correcto?

Las pruebas de aplicaciones a nivel del sistema desde la interfaz de usuario crearán una gran cantidad de tráfico de red. Es difícil, incluso para el ojo entrenado, descifrar qué tráfico es parte de un escenario de prueba real que ocurre en el nivel de la interfaz de usuario. Confiar en la interpretación humana del tráfico de red requiere mucho tiempo y es propenso a errores. Además, normalmente no es una habilidad que tengan los probadores, por lo que deben confiar en los desarrolladores para que los ayuden.

¿Cómo conecto estos pasos de prueba en escenarios?

La creación de escenarios de prueba a partir de grabaciones de tráfico básicas es difícil. Si se necesitan varias pruebas para crear un escenario, esta dificultad se multiplica. Reproducir una grabación de tráfico en lugar de un escenario a menudo es difícil porque depende de condiciones previas exactas para la prueba original. Además, puede ser imposible reproducir la misma prueba en repetición, por ejemplo, lo cual es importante para crear pruebas de rendimiento o relacionadas con la seguridad.

¿Cómo puedo capturar y reutilizar el conocimiento?

Una grabación de tráfico es simplemente una suma de toda la actividad de la red durante una sesión de prueba. No existe una comprensión inherente del paso del mensaje subyacente ni de la relación con los servicios de API. Sin esto, es imposible extender estas grabaciones para otros fines, o incluso realizar cambios para adaptarse a los nuevos requisitos. A menudo están congelados en el tiempo y solo son útiles durante el período en el que se grabaron.

Volver a la inteligencia artificial

Aquí es donde entra en juego la inteligencia artificial, de modo que la grabación del tráfico no solo puede tener lugar, sino que también se puede extender a un valor real y procesable para sus usuarios. Es por eso que desarrollamos el Generador de pruebas de API inteligente, por lo que podríamos crear un lugar para que los probadores de API novatos puedan comenzar a realizar pruebas de API sin escribir una sola línea de código. Para que los usuarios puedan comenzar rápidamente a crear escenarios de prueba completos y significativos, e incluso extender esas pruebas de API a pruebas de seguridad y rendimiento, aprovechando la interfaz simple e intuitiva de Parasoft SOAtest.

¿Como Funciona?

Mientras prueba su IU, Smart API Test Generator monitorea las llamadas API subyacentes que se realizan a su aplicación, al igual que lo haría un recopilador de tráfico, y luego usa inteligencia artificial para descubrir patrones y comprender las relaciones entre esas llamadas API. Luego, puede generar escenarios de prueba de API automatizados que realizan las mismas acciones que sus pruebas de IU, pero son completamente automatizadas y fácilmente ampliables.

Esencialmente, esto:

Pero, ¿por qué importa eso? Estos son algunos de los beneficios que proporciona este método:

  • Reduce el tiempo dedicado a determinar la forma correcta de crear pruebas de API al convertir automáticamente las acciones que realiza en su navegador en pruebas de API automatizadas que modelan las mismas acciones que realizó en la interfaz de usuario (en el orden correcto).
  • Facilita la creación de pruebas de API completas y significativas mediante la creación automática de escenarios de prueba completos basados ​​en las relaciones entre las diferentes llamadas de API. (Sin esto, los usuarios tienen que dedicar tiempo a investigar casos de prueba, buscar patrones y construir manualmente las relaciones para formar cada escenario de prueba).
  • Agrega automáticamente aserciones y validaciones para garantizar que sus API funcionen según lo previsto, de modo que pueda realizar incluso el tipo más complejo de lógica de aserción sin tener que escribir ningún código (o arriesgarse a construirlos incorrectamente).
  • Reduce el tiempo dedicado al mantenimiento de pruebas. Debido a que no tiene scripts, los usuarios no tienen que perder tiempo reescribiendo el código para casos de prueba cada vez que cambia un servicio.
  • Ayuda a los equipos de desarrollo y prueba a colaborar con un solo artefacto que ambos equipos pueden compartir y comprender fácilmente (y es mejor para diagnosticar la causa raíz de los defectos que una prueba de IU).
  • Sienta las bases para una estrategia de prueba de API escalable al ayudar a los usuarios a extender las pruebas, la lógica de flujo de prueba y las soluciones de datos para lograr el alcance completo de la cobertura de prueba de API necesaria para validar completamente las aplicaciones en el corto tiempo dado.

En resumen, la herramienta crea automáticamente pruebas basadas en una interpretación significativa de la actividad de la API capturada y admite la fácil extensión y mantenimiento de estas pruebas para que su valor se multiplique a lo largo del ciclo de vida del software.

Ahora demos un paso más

Todo esto es bueno por derecho propio. Pero la parte que me entusiasma aún más es la parte en la que el Generador de pruebas de API inteligente ayuda a los usuarios a comprender las relaciones entre las acciones de la IU y las llamadas a la API, lo que facilita que los evaluadores "adquieran habilidades" y adopten una práctica integral de pruebas de API. . Dado que las pruebas de API se pueden automatizar por completo y escalar fácilmente, los equipos pueden reducir el costo total de la calidad y evitar lanzamientos retrasados.

Analicemos eso un poco. Porque el Generador de pruebas de API inteligente asume el trabajo pesado, brinda a los probadores un lugar fácil y sin secuencias de comandos para comenzar a crear pruebas de API, reduce el punto de entrada técnico a las pruebas de API, lo que lleva a los principiantes al mundo de las pruebas de API y al ecosistema Parasoft SOAtest fácil de usar, donde los usuarios se benefician de potentes herramientas visuales que son fáciles de adoptar y usar.

Por eso estoy emocionado

¡Oh, las implicaciones! La recopilación de tráfico de la actividad de la API durante las pruebas del sistema y de la interfaz de usuario es insuficiente para automatizar las pruebas de API, pero eso es todo lo que la industria ha tenido hasta ahora. La dependencia de las condiciones previas hace que estas grabaciones sean menos reutilizables y casi imposibles de ampliar para otros fines. Sin mencionar la dificultad de crear escenarios de pruebas significativos a partir de tráfico complejo, algo en lo que la mayoría de los probadores no son expertos.

¡Pero eso ya no importa! Ahora que tenemos el generador de pruebas de API inteligente SOAtest de Parasoft, los usuarios pueden aprovechar la inteligencia artificial para el trabajo pesado. Los probadores de API principiantes pueden usarlo para comenzar y aprender cómo funcionan las pruebas de API, y los probadores de API experimentados pueden aprovecharlo para ser mucho más eficientes (esa es una de las principales formas en que lo usamos ahora, aquí en Parasoft). Y al final del día, las organizaciones pueden beneficiarse del ahorro de tiempo y dinero mediante la creación de pruebas significativas, extensibles y reutilizables aprovechando una máquina. Eso is 2018, ¿verdad?

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