Red de conocimiento informático - Material del sitio web - Cómo realizar correctamente pruebas de API funcionales

Cómo realizar correctamente pruebas de API funcionales

Históricamente, las pruebas se han realizado a nivel de GUI, pero los desarrolladores se han dado cuenta de lo frágil que es. Este artículo hablará más sobre las pruebas de API y cómo hacer que funcionen de manera óptima.

Una API o interfaz de programación de aplicaciones es un sistema de métodos de comunicación que permite a desarrolladores y no desarrolladores acceder a programas, procedimientos, funcionalidades y servicios. Los desarrolladores que programan utilizando REST pueden comprender fácilmente su código. Ellos y todos los demás saben qué idioma utilizarán, cómo funciona la función, qué parámetros se pueden utilizar, etc.

Los marcos populares para desarrollar API incluyen Swagger, WADL y RAML. Idealmente, cuando los desarrolladores programan, forman un "contrato API" que describe cómo utilizar los servicios desarrollados en la API.

Antes de la estandarización, la programación era como el Salvaje Oeste. Los desarrolladores acceden a su código como mejor les parezca y, debido a que hay tantas formas de escribir código, es difícil desarrollar servicios de acceso público y ponerlos a disposición de los usuarios. SOAP fue el primer intento de estandarización, pero ahora REST se ha convertido en algo común.

Las pruebas de API crean un código más confiable. Pero históricamente las pruebas se han realizado más a nivel de GUI. Cuando los desarrolladores completan su trabajo, lo entregan a los ingenieros de control de calidad. Los ingenieros de pruebas tienen tiempo limitado, por lo que prueban el código en el nivel más alto de la GUI. Las pruebas cubrirán el desarrollo front-end y back-end.

Esto es adecuado para los primeros días de las pruebas manuales y automatizadas, pero no para la era de las pruebas ágiles y continuas. Las pruebas de GUI son demasiado frágiles y los scripts de automatización de GUI pueden fallar fácilmente y volverse inestables.

En la era Agile, las pruebas deben realizarse en un nivel inferior, el nivel API. Los desarrolladores pueden incluso probarlo ellos mismos. Con los contratos API, las pruebas API se pueden realizar en la fase de preparación de la prueba incluso antes de que se complete el desarrollo. Esto significa que los desarrolladores pueden validar su código comparándolo con pruebas escritas previamente (también conocido como desarrollo basado en pruebas).

Sin embargo, si bien la importancia de las pruebas de API es bien conocida, no siempre se logra. Los desarrolladores ágiles no tienen tiempo. En promedio, los desarrolladores tienen muy poco tiempo por semana para escribir código y el resto lo dedican a pruebas, documentación, validación y reuniones. Por lo tanto, prefieren forzar sprints y realizar pruebas manuales, pero esto lleva demasiado tiempo. Las pruebas funcionales de una API son difíciles de completar en dos semanas y requieren desarrollo, pruebas, validación y documentación completa.

Las pruebas de API automatizadas aceleran el desarrollo y ahorran tiempo a los desarrolladores al escribir código y otras tareas. La automatización también facilita cubrir todo el alcance de las pruebas: positivos, negativos, casos extremos, inyección SQL, etc. Esto garantiza que se prueben todos los parámetros y permutaciones. Un equipo de desarrollo ágil que intente probar su API podría probar uno o dos flujos de prueba positivos, o un flujo de prueba positivo y otro negativo, y considerarlo un éxito. Pero esta no es una prueba de API exhaustiva y, dado que se omiten muchas variantes, no es posible una validación completa, lo que introduce un riesgo de liberación innecesario.

Por ejemplo, supongamos que la API utiliza el nombre del autor y la fecha de publicación de un nuevo libro. Se probarán los nombres y las fechas para ver si son válidos. Una vez que la respuesta se recibe correctamente, la API está lista para ejecutarse.

Pero ¿qué pasa con los casos negativos y extremos? Por ejemplo, insertar la fecha correcta pero ningún libro, o cambiar el formato de fecha, o el formato de fecha correcto no existe para un año, o nombres largos, o insertar código SQL que otorgue datos a la base de datos, etc. Estos son sólo algunos ejemplos de las muchas variaciones que deben probarse, incluso si no se abordan en el contrato.

Los desarrolladores y evaluadores necesitan una forma sencilla de crear pruebas que cubran todos estos aspectos.

Le recomendamos que busque una solución donde pueda acceder a Swagger u otros archivos de marco, probarlos completamente con su contrato API y ejecutarlos como parte de un proceso de integración continua. Esto garantizará que se mantenga concentrado en desarrollar un código sólido y duradero.