X
BLOG

Pruebe rigurosamente cadenas complejas de API con un enfoque basado en modelos

Pruebe rigurosamente cadenas complejas de API con un enfoque basado en modelos Tiempo de leer: 3 minutos
Las API brindan a las empresas la flexibilidad para innovar rápidamente y extender sus ofertas principales a nuevos usuarios; sin embargo, esta flexibilidad también trae consigo una enorme complejidad para las pruebas. Se puede utilizar un enfoque basado en modelos para igualar la velocidad y la variabilidad de la entrega de software moderno.

Las pruebas de API rigurosas deben superar una complejidad masiva, teniendo en cuenta una gran cantidad de casos de prueba posibles. Los datos del mensaje necesarios para llegar a los puntos finales deben “cubrir” cada combinación de valores de datos distintos. Eso incluye valores de datos ingresados ​​por los usuarios, así como las acciones únicas que realizan contra un sistema. También incluye datos de la máquina generados por la actividad del usuario, por ejemplo, tipo de contenido e ID de sesión.

Las pruebas de API también deben tener en cuenta los recorridos a través de los cuales los datos pueden fluir a través de las API. Deben cubrir las combinaciones de acciones y métodos de la API que pueden transformar los datos en su camino para llegar a ciertos puntos finales.

Pero las API no existen de forma aislada. Ellos, por definición, conectan múltiples sistemas o componentes, por lo que cada prueba es una prueba de extremo a extremo en cierto sentido. Por lo tanto, un conjunto riguroso de pruebas de API debe tener en cuenta la gran cantidad de acciones o métodos combinados que pueden transformar los datos a medida que fluyen a través de las API conectadas.

Un ejemplo simplificado poco realista incluiría 1000 combinaciones de datos ingresados ​​por el usuario, 1000 combinaciones diferentes de datos generados por la máquina y 1000 recorridos distintos a través de las acciones combinadas:

Eso es ya mil millones de combinaciones, cada una de las cuales es candidata para una prueba de API. Por lo tanto, las pruebas de API rigurosas deben seleccionar una serie de casos de prueba que se pueden ejecutar en el sprint, sin dejar de mantener una cobertura de prueba de API suficiente.

¡Demasiadas pruebas, poco tiempo!

Desafortunadamente, las técnicas de prueba utilizadas en las pruebas de API son a menudo demasiado manuales y no sistemáticas para las pruebas de API rigurosas. Las API críticas para el negocio corren el riesgo de no ser probadas en cada punto del ciclo de vida de las pruebas:

  1. La creación de pruebas de API una a una en herramientas de prueba o mediante secuencias de comandos es demasiado lenta y ad hoc para alcanzar incluso una fracción de las combinaciones posibles.
  2. Los resultados esperados son difíciles de definir a partir de las definiciones y los requisitos del servicio. Dudar de si una respuesta es "correcta" socava la confiabilidad de las pruebas de API.
  3. Los datos de prueba carecen de la mayoría de las combinaciones necesarias para las pruebas API rigurosas. Las copias de baja variedad de datos de producción se centran en escenarios esperados que han ocurrido en el pasado. Carecen de valores atípicos y combinaciones negativas, así como de datos para probar funciones inéditas.
  4. Cuando se trata de la ejecución de pruebas de API, a menudo no hay acceso a sistemas internos y de terceros. Los componentes pueden estar sin terminar o en uso por otro equipo, o es posible que un tercero no proporcione entornos aislados para realizar pruebas. Por lo tanto, las restricciones ambientales socavan aún más la agilidad de las pruebas API.

En cambio, probar cadenas complejas de API requiere un enfoque integrado y automatizado. Los probadores de API deben poder identificar el conjunto más pequeño de pruebas de API necesarias para el rigor de las pruebas de API, creando sistemáticamente los datos de prueba y los entornos necesarios para ejecutarlos.

Pruebas de API basadas en modelos

Para superar la complejidad de las cadenas de llamadas de API, los equipos pueden beneficiarse de un enfoque basado en modelos para las pruebas de API, en el que los evaluadores pueden generar todo lo necesario para las pruebas de API rigurosas a partir de modelos fáciles de usar.

Así es como funciona:

  • Generación de pruebas basadas en modelos crea pruebas de API que "cubren" cada combinación distinta de datos y métodos involucrados en las cadenas de API. Esto aplica algoritmos matemáticos a modelos matemáticamente precisos. Los modelos se crean rápidamente a partir de definiciones de servicios importadas y grabaciones de mensajes. Arrastrar y soltar los diagramas de flujo reutilizables ensambla pruebas de extremo a extremo para cadenas complejas de API, lo que permite pruebas rigurosas en iteraciones cortas.
  • Datos de prueba precisos y resultados esperados se generan simultáneamente para cada prueba. Los resultados esperados son simplemente los bloques finales en los diagramas de flujo, y Modelizador de prueba además, encuentra o crea datos "justo a tiempo" para cada prueba que genera. Los probadores de API pueden seleccionar una amplia gama de funciones de generación de datos y procesos repetibles de gestión de datos de prueba (TDM) a nivel de modelo. Estos se resuelven "justo a tiempo" durante la generación de la prueba, compilando conjuntos de datos coherentes que están hechos a medida para cada prueba de un extremo a otro.
  • Generación de datos virtuales produce los pares de solicitud-respuesta necesarios para simular componentes faltantes o no disponibles. La generación de datos virtuales crea respuestas precisas para cada solicitud posible. Este proceso de TDM repetible también se llama durante la generación o ejecución de la prueba, lo que garantiza que cada prueba generada a partir de los modelos centrales esté equipada con entornos y datos de prueba precisos.

Con este enfoque integrado, los equipos de control de calidad pueden generar por sí mismos todo lo necesario para las rigurosas pruebas de API. El mantenimiento de diagramas de flujo centrales mantiene las pruebas, los datos y los servicios virtuales alineados, probando cadenas complejas de API en iteraciones cortas.

Descargue la última Libro electrónico Curiosity-Parasoft para descubrir cómo este enfoque puede maximizar la velocidad y el rigor de sus pruebas de API.

Automatice las tareas de prueba que requieren mucho tiempo para desarrolladores y evaluadores

Escrito por

Tom Pryce

Tom Pryce es un administrador de comunicaciones tecnológicamente práctico en Curiosity Software Ireland. Sus intereses incluyen las pruebas basadas en modelos, la gestión de datos de prueba y la automatización robótica de procesos. Tuitea bajo @Curiositysoft.

Reciba las últimas noticias y recursos sobre pruebas de software en su bandeja de entrada.

Prueba Parasoft