Por Manoj Chaudhary, Director de Tecnología y Vicepresidente Senior de Ingeniería
Para comprobar la funcionalidad, fiabilidad y seguridad de sus interfaces de programación de aplicaciones (API), los equipos de TI realizan una variedad de pruebas diferentes, que incluyen evaluaciones funcionales, de gobernanza, de caos, de penetración, de rendimiento, de estrés y de longevidad. A continuación, describimos cinco de los desafíos de prueba de API más comunes que enfrentan los equipos y ofrecemos nuestras recomendaciones para abordarlos.
1. Superar la configuración inicial
Crear, desarrollar y poner en marcha la infraestructura de pruebas puede ser una tarea laboriosa y puede resultar difícil motivar al equipo durante todo el proceso.
Nuestra recomendación
Explicar cómo el proceso de pruebas da sus frutos a largo plazo puede ser clave para motivar a un equipo de pruebas. También es importante señalar lo crucial que es esta fase en las pruebas de API en general. Al realizar la configuración inicial, piense detenidamente en cómo probará la API y qué requieren esas pruebas en el diseño de su infraestructura.
2. Generación y gestión de grandes volúmenes de datos de prueba
Las API con muchos parámetros requieren una cantidad significativa de datos (y en algunos casos, datos con alta cardinalidad) para realizar pruebas eficaces. Crear, mantener y garantizar que estos datos sean reutilizables puede representar un desafío para los evaluadores.
Nuestra recomendación
La clave para generar y configurar datos de prueba es comprender las estructuras de solicitud y respuesta y las llamadas a la API asociadas. Utilice herramientas de gestión de datos que le permitan comprender estas conexiones, y luego enmascare, genere y cree subconjuntos de nuevos datos que se ajusten a sus necesidades de prueba.
3. Comprender claramente los objetivos para las pruebas de gobernanza
Las pruebas de gobernanza, fundamentales para las API diseñadas para aplicaciones en la nube multitenant, se realizan para ayudar a proteger la infraestructura contra el uso excesivo, los «vecinos ruidosos» y los ataques. Las API suelen contar con reglas de gobernanza para su usage (por ejemplo, políticas de almacenamiento, límites de tasa y tamaño de la carga útil), pero la falta de conocimiento y comprensión tanto de la lógica de la arquitectura de la API como de estas reglas a menudo genera incertidumbre sobre los objetivos de las pruebas.
Nuestra recomendación
Los equipos pueden mitigar este desafío de las pruebas de API creando reglas de gobernanza bien definidas y redactadas; construyan utilidades para que su equipo las ajuste según sea necesario para hacer las pruebas más fáciles y eficientes.
4. Realización eficaz de pruebas de caos
En 2010, los equipos de desarrollo y operaciones de Netflix crearon esta forma de pruebas cuando comenzaron a trasladar la infraestructura tradicional a la infraestructura en la nube de Amazon Web Services (AWS). Las pruebas de caos, o ingeniería del caos, es un enfoque altamente disciplinado que prueba la integridad del sistema al simular e identificar proactivamente fallas antes de que conduzcan a un tiempo de inactividad no planificado o a una mala experiencia de usuario.
El proceso consiste en:
- Probar que un sistema funciona en un estado estable definido. Primero, los evaluadores deben identificar una salida del sistema medible que indique un comportamiento de funcionamiento normal. La creación de la infraestructura y las herramientas para definir y medir un estado estable puede ser compleja, según la arquitectura y el alcance de las aplicaciones involucradas.
- Pruebas para determinar que el estado estacionario de un sistema se mantendrá. Tras establecer un estado estacionario, los evaluadores determinan si continuará en condiciones de control, experimentales y del mundo real.
- Prueba de impacto mínimo en los usuarios. Los evaluadores interrumpen o afectan el servicio para determinar el impacto negativo en los usuarios.
- Introduciendo el caos. Después de establecer que un sistema funciona en un estado estacionario definido, que dicho estado se mantiene y que el “radio de explosión” está contenido, los evaluadores ejecutan sus aplicaciones de pruebas de caos para ver cómo se comporta el sistema bajo condiciones de estrés o circunstancias particulares (por ejemplo, fallas de servidores, mal funcionamiento de hardware o conexiones de red interrumpidas).
Nuestra recomendación
Construye ganchos en tu aplicación e infraestructura que le permitan a tu equipo de pruebas crear caos y obtener fácilmente métricas relevantes sobre el radio de impacto.
5. Contratar al equipo adecuado para las pruebas de penetración
En las pruebas de penetración, un evaluador con conocimientos prácticos limitados de la API específica la atacará para evaluar el vector de amenaza desde una perspectiva externa. Los ataques pueden dirigirse a toda la API o a determinadas funciones y procesos.
Nuestra recomendación
Un equipo interno puede realizar pruebas de penetración iniciales, pero un evaluador de penetración externo debe realizar las pruebas de penetración profundas de seguimiento.
Supera los retos de las pruebas de API con Jitterbit API Manager
Como parte de la plataforma unificada Harmony, Jitterbit API Manager simplifica las pruebas de API al brindar visibilidad de todo el ciclo de vida —desde el diseño hasta el monitoreo del desempeño— y al facilitar la colaboración a través de una plataforma centralizada management console.
En Jitterbit API Manager, la documentación de la API generada a partir de las definiciones de OpenAPI se presenta automáticamente como documentación interactiva de Swagger UI, lo que permite a los equipos probar los puntos de conexión en tiempo real. Más información sobre API Manager o conéctese con un especialista en productos para solicitar una demostración gratuita.