5 pruebas de API "imprescindibles" para la seguridad, confiabilidad y rendimiento de las API
por Parasoft
Marzo 31, 2016
4 min leer
Asegurarse de que sus API brinden el nivel necesario de seguridad, confiabilidad y rendimiento inevitablemente implica desarrollar, ejecutar continuamente y mantener religiosamente una amplia gama de pruebas complejas.
Aquí hay 5 pruebas clave de API "imprescindibles" que lo ayudarán a lograr esto:
1. Creación inteligente de pruebas y validación automatizada
Exponer los servicios como API sin el endurecimiento adecuado es como llevar a su hijo a un país "en desarrollo" sin obtener primero las vacunas recomendadas. Afortunadamente, las herramientas y estrategias para lograr el endurecimiento adecuado son una extensión de las que han demostrado ser efectivas para las pruebas de SOA, al igual que el proceso de administrar las vacunas necesarias para los viajes al extranjero es esencialmente una extensión de la administración de las vacunas nacionales recomendadas.
Dado que la exposición extrema y el potencial de uso indebido de las API hacen que las pruebas en una amplia gama de condiciones y casos extremos sean críticas, la automatización pasa a primer plano. La creación y ejecución de pruebas automatizadas simples con validación limitada o manual podría haber sido suficiente dado el alcance interno de SOA, pero se requiere una automatización más sofisticada y extensa para estar seguro de que sus API son lo suficientemente robustas para sobrevivir en la naturaleza. Necesita un nivel de automatización que le brinde un conjunto completo de casos de prueba funcionales que se puedan repetir de manera sistemática.
Las capacidades recomendadas para este objetivo incluyen una interfaz intuitiva para automatizar escenarios complejos en la capa de mensajería, ESB, bases de datos y mainframes:
- Definición de escenarios de prueba automatizados en la amplia gama de protocolos y tipos de mensajes utilizados en las API: REST, JSON, MQ, JMS, EDI, mensajes de longitud fija, etc.
- Automatización de la validación de múltiples capas en múltiples puntos finales involucrados en escenarios de prueba de un extremo a otro.
- Parametrizar mensajes de prueba, validaciones y configuraciones de fuentes de datos, valores extraídos de escenarios de prueba o variables.
- Definición de lógica de flujo de prueba sofisticada sin necesidad de secuencias de comandos.
- Visualizar cómo fluyen los mensajes y eventos a través de arquitecturas distribuidas a medida que se ejecutan las pruebas.
2. Gestión de cambios para entornos y activos de prueba
Las API en continua evolución ayudan a las organizaciones a mantenerse un paso por delante de la competencia mientras responden a las demandas comerciales. Sin embargo, este cambio frecuente presenta importantes riesgos de calidad si el conjunto de pruebas automatizado no logra seguir el ritmo de la API en evolución.
Un sistema para la actualización rápida, fácil y precisa de los activos de prueba es fundamental para mantener los activos de prueba sincronizados con la API cambiante. Si puede evaluar automáticamente el impacto de los cambios en las pruebas existentes y luego actualizar rápidamente las pruebas existentes (o crear nuevas) en respuesta a los impactos de los cambios identificados, puede reducir enormemente la cantidad de tiempo necesario para garantizar que sus pruebas no fallen. debido a cambios esperados ... o pasar por alto una nueva funcionalidad crítica.
3. Virtualización de servicios para entornos de prueba simulados
Virtualización de servicios crea entornos de prueba simulados que brindan acceso en cualquier momento y en cualquier lugar al comportamiento de los componentes dependientes del sistema que no están disponibles, son de difícil acceso o son difíciles de configurar para el desarrollo o la prueba. Los "componentes dependientes" pueden incluir mainframes, front-end de aplicaciones móviles, bases de datos, servicios web, aplicaciones de terceros u otros sistemas que están fuera del control directo de su equipo. La virtualización de servicios se puede usar junto con la virtualización de hardware/OS para acceder a los entornos que necesita probar antes, más rápido o de forma más completa.
En el contexto de las pruebas de API, la virtualización de servicios se puede aplicar de dos formas clave:
- Para proporcionar acceso al comportamiento del componente dependiente (por ejemplo, desde una aplicación móvil, una base de datos, un sistema heredado o un servicio de terceros) que necesita para validar completamente su API.
- Para imitar el comportamiento de sus propias API, creando un entorno de prueba que los consumidores de API puedan desarrollar y probar sin afectar su entorno de producción, o para permitir que el desarrollo y las pruebas comiencen antes de que se completen sus API.
4. Pruebas de rendimiento exhaustivas: idealmente con virtualización de servicios
Debido a la naturaleza altamente expuesta de las API, existe un alto potencial para volúmenes de tráfico impredecibles y, a menudo, volátiles. Para determinar si su API satisfará los SLA en el caso de la demanda errática o creciente a la que normalmente se enfrentan las API, es fundamental aumentar el alcance de las pruebas de rendimiento. Puede utilizar la virtualización de servicios (explicada anteriormente) para crear entornos de prueba simulados que le ayuden a realizar pruebas en diferentes escenarios de rendimiento que, de otro modo, serían difíciles de crear en el entorno de prueba.
Por ejemplo, puede establecer fácilmente condiciones de rendimiento (p. Ej., Tiempo, latencia, retraso) para emular el rendimiento máximo, esperado y lento, tal vez para ayudarlo a planificar las ráfagas en la nube o determinar cómo podría responder la API cuando alguien acceda a ella desde China. . También puede configurar varias condiciones de error y falla que son difíciles de reproducir o replicar con sistemas reales; por ejemplo, si sus API dependen de Amazon Web Services, puede simular fácilmente un escenario en el que AWS no funciona. Esta capacidad para configurar rápidamente una amplia gama de condiciones en sistemas dependientes es esencial para determinar si sus API brindan respuestas razonables, o al menos fallan con gracia, en condiciones excepcionales.
Una última forma en que la adopción de la virtualización de servicios ayuda a las pruebas de rendimiento: puede "virtualizar" cualquier conexión a sistemas de terceros, eliminando de manera confiable el riesgo de que sus pruebas de estrés puedan afectar los servicios que no está permitido (o presupuestado) para bombardear con mensajes de prueba.
5. Pruebas de seguridad exhaustivas: idealmente con virtualización de servicios
Teniendo en cuenta la mayor superficie de ataque de las API, una estrategia de pruebas de seguridad multifacética es esencial para garantizar que el desarrollo haya incorporado el nivel de seguridad adecuado en su aplicación. Esto incluye:
- Ejecución de escenarios de prueba complejos de autenticación, cifrado y control de acceso.
- Generando una amplia gama de escenarios de ataques de penetración que involucran fuzzing de parámetros, inyecciones, grandes cargas útiles, etc.
- Ejecución de escenarios de ataque de penetración contra sus escenarios de prueba funcionales existentes.
- Monitorear el back-end durante la ejecución de la prueba para determinar si la seguridad está realmente comprometida.
Además, si está adoptando la virtualización de servicios (mencionada anteriormente), puede aprovecharla para llevar sus pruebas de seguridad al siguiente nivel:
- Proporciona formas rápidas de emular escenarios de ataque y de emular diferentes comportamientos de seguridad de las dependencias. Esto le permite obtener más valor de sus escenarios de prueba funcionales existentes (ya que puede ejecutarlos frente a diferentes escenarios de seguridad que de otro modo serían difíciles de configurar y no sería factible probarlos).
- Permite realizar pruebas de seguridad exhaustivas sin un experto en seguridad. Los escenarios de prueba existentes se pueden ejecutar fácilmente en un amplio conjunto de escenarios de seguridad preconfigurados.
- Le ayuda a aislar y concentrarse en la respuesta de sus API a varios escenarios de ataque y diferentes comportamientos de seguridad de las dependencias.
Pruebas de API: recomendaciones de Forrester
¿Quiere obtener más información sobre las pruebas de API? Descargue un informe gratuito de Forrester Wave que evalúa 9 proveedores de herramientas de automatización de pruebas funcionales a través de 40 criterios para ayudar a las organizaciones que trabajan en aplicaciones empresariales, móviles y web a seleccionar la mejores herramientas de prueba de API.