Hablemos de webservices, sus protocolos, métodos y tipos de documentos, no importa sobre qué herramienta trabajes ni sobre qué lenguaje de programación interactúes, a continuación, te voy a contar algunos tips a tener en cuenta en cualquier estrategia de pruebas para dar el siguiente paso para ser un experto en pruebas APIs.
Validando campo por campo
Una de las primeras pruebas que hacemos sin importar el protocolo en el que estemos trabajando es la validación de los campos de cada operación de nuestra API:
- Tipo Cadena
- Tipo Numérico
- Tipo Booleano
- Tipo Fecha
- Tipo Null
- ¿Es obligatorio?
Hay muchas preguntas más por hacerse: ¿Qué sucede con los caracteres especiales? ¿Y si lo mando vacío? ¿Y si no mando el campo? ¿Y si lo mando con la palabra null?
Controlando la respuesta
Los servicios web SOAP y REST poseen documentación diferente, unos son xml y otros son json respectivamente, en cualquiera de las situaciones es importante que la respuesta recibida sea la correcta y corresponda a lo definido a nivel arquitectura y funcional.
Por tal motivo es sumamente importante comprender cómo se compone cada uno de estos tipos de documentos para poder hacer un análisis y comprender el significado de esa respuesta e investigar:
- ¿Qué son los atributos?
- ¿Qué son los namespaces?
- ¿Qué son los objetos?
- ¿Qué es una lista de objetos?
- ¿Qué son los elementos hermanos?
Dependiendo de la herramienta que utilices existen muchas maneras de validar y controlar estructuras xml y json de una manera más automática, las herramientas más representativas son XPATH y JSONPATH.
Las Pruebas negativas también son positivas
Cuando uno tiene poco tiempo lo que importa es el famoso “camino feliz”, si eso funciona ya podemos salir a producción. ¡Error! cada “camino infeliz” es tan importante como el positivo, ya que debemos verificar que en cualquier circunstancia el camino elegido transite al destino (resultado) esperado.
Una práctica muy habitual en las pruebas de servicios son las clasificaciones también llamadas particiones de equivalencia.
Integrando los Servicios
Las pruebas integrales, también llamadas chaining testing, pruebas de orquestación o pruebas de encadenamiento, son aquellas donde los datos de la respuesta de una petición son parte de los datos de entrada de la siguiente petición. Si bien todos estos datos pueden ser simulados o creados, tarde o temprano en algún momento del ciclo de vida de las pruebas API tendremos que “orquestar” los servicios y se nos presentarán diferentes combinaciones de casos donde tendremos que evaluar si el comportamiento es el deseado o no. Las pruebas de orquestación es el corazón de todo experto en pruebas APIs.
Pruebas de Rendimiento
Siempre debemos garantizar que se cumpla el manejo correcto de una carga esperada, pero también tenemos que hacer una proyección de hasta cuanto puede soportar mi sistema. Para ambas cuestiones es importante trazar una estrategia de prueba integral que incluya:
- Pruebas de carga
- Pruebas de stress
- Pruebas de escalabilidad
¿Qué pasa si dejamos por mucho tiempo la prueba de carga? ¿Se revelan inestabilidades en el sistema como perdidas de memoria, por ejemplo? ¿Qué sucede si aumentamos la cantidad de usuarios virtuales de manera gradual o si producimos aumentos repentinos de usuarios concurrentes?
Al ejecutar este tipo de pruebas es importante contar con sistemas lo suficientemente parecidos en hardware y SO al productivo. O en su defecto, contar con un experto en la materia de performance que pueda trazar una tendencia de los resultados obtenidos en certificación con los que deberían dar en producción, caso contrario puede inducir a malas interpretaciones en el análisis del resultado.
Pruebas de Seguridad
Toda vulnerabilidad que provoque una amenaza externa debe y tiene que ser exterminada. Para ello se recurren a varios tipos de pruebas que responden a preguntas como: ¿Qué tipo de autorización se requiere para la utilización de la API? ¿Qué tipo de autenticación? ¿Se cifran los datos confidenciales?
Otras pruebas más invasivas serían:
- Pruebas de penetración
- Pruebas Fuzz
- Pruebas SQL Injection
La Automatización más fácil de aprender
No voy a hablar de las ventajas que supone la automatización de pruebas en APIs porque es algo que ya muchos conocen (la famosa pirámide de automatización), pero para la mayoría de las pruebas expuestas aquí el paso de un tester de pruebas APIs a un Ingeniero Automatizador, es completamente mínimo a diferencia del automatizador de sitios web.
A las personas que prueban webservices, poco conocimiento técnico les falta para lograr dar el salto a la automatización, todo dependerá de la herramienta y/o lenguaje que utilicen.
Es sumamente importante esa elección, pero una vez que elijan, la curva de aprendizaje de pruebas automáticas es mucho más baja que cualquier otra prueba de automatización gracias a como dije anteriormente, el fuerte skill técnico que posea el experto en pruebas APIs.
Otros contenidos relacionados
Canal de Youtube – API Testing 4 Testers
Overview de Apptim: herramienta de performance de aplicaciones móviles
4 desafíos comunes de la automatización de pruebas: ¿cómo enfrentarlos?
Etiquetas
Posts Relacionados
Caso de éxito: estrategia de pruebas E2E para la transformación digital
Nuestros expertos diseñaron una estrategia de pruebas end-to-end para ayudar a Libercoop a llevar adelante un óptimo proceso de transformación digital, en pro del desarrollo económico y social del país.
ChatGPT: ¿reemplazará la IA a los testers de software?
ChatGPT está revolucionando la forma de trabajo. ¿Qué impacto puede tener esta tecnología en el testing de software? ¿Tiene la capacidad de ayudar a los testers? ¿O de reemplazarlos? ¡Descúbrelo aquí mediante algunas aplicaciones del sistema!