Compartir a través de


Guía de pruebas de Azure para aplicaciones de JavaScript

Como desarrollador de JavaScript nuevo en Azure, use esta guía de pruebas de Azure para aprender estrategias de pruebas unitarias, de integración, de CI/CD y de inteligencia artificial con SDK de Azure y otros recursos para garantizar la calidad, el rendimiento y la confiabilidad de la aplicación.

Marco de buena arquitectura de Azure

Azure Well-Architected Framework proporciona un marco de diseño para aplicaciones en la nube en cinco pilares:

  • Confiabilidad : asegurarse de que la aplicación es resistente a errores y se recupera rápidamente.
  • Seguridad: protección de las aplicaciones y los datos frente a amenazas.
  • Eficiencia del rendimiento : optimización de la forma en que el sistema usa los recursos para cumplir los requisitos.
  • Optimización de costos: administración de costos al entregar valor.
  • Excelencia operativa : mejora de los procesos y la supervisión para ofrecer aplicaciones de forma eficaz.

Las estrategias de prueba de este artículo se alinean principalmente con el pilar excelencia operativa, que enfatiza la automatización, la validación y la mejora continua de los procesos operativos.

Bucles de prueba internos y externos para SDK de Azure en JavaScript

Los bucles de prueba internos y externos son conceptos fundamentales en las pruebas de software, especialmente para las aplicaciones implementadas en plataformas en la nube, como Azure:

  • El bucle interno hace referencia a un entorno local donde los desarrolladores suelen ejecutar pruebas unitarias e de integración durante la fase de desarrollo. Este proceso está diseñado para proporcionar retroalimentación rápida e iteración ágil.

  • El bucle externo abarca las pruebas que los desarrolladores ejecutan en canalizaciones de integración continua y entrega continua (CI/CD), almacenamiento provisional y entornos de producción. Estas pruebas suelen aprovechar las ventajas de Azure DevOps o Acciones de GitHub.

Estas pruebas incluyen pruebas de un extremo a otro (E2E), rendimiento y pruebas de seguridad. Validan el comportamiento de la aplicación en entornos que se reflejan estrechamente o son idénticos al entorno de producción final. Las estrategias de pruebas eficaces usan ambos bucles para ayudar a garantizar una cobertura completa y una garantía de calidad antes y después de la implementación.

Aprende más:

Pruebas locales y basadas en la nube con el SDK de Azure

Las pruebas locales sin Azure implican simular servicios de Azure. Use este enfoque para probar los cambios rápidamente sin incurrir en los costos o la latencia de red asociada a los servicios reales de Azure.

Por otro lado, las pruebas basadas en la nube con Azure aprovechan los recursos reales de Azure para validar la integración, la seguridad y el rendimiento de la aplicación en un entorno de nube. Este método es fundamental para la validación final en una configuración similar a producción. Ayuda a garantizar que la aplicación se comporte según lo previsto con los servicios activos de Azure.

Los emuladores y los contenedores de desarrollo mejoran el desarrollo local con servicios de Azure de forma diferente. Los emuladores imitan los servicios de Azure para pruebas rentables y en fase temprana sin cargos de Azure, pero es posible que no repliquen completamente las características del servicio activo. Los contenedores de desarrollo replican más detenidamente el entorno de producción, incluidas las dependencias y los servicios de la aplicación, para facilitar una transición sin problemas a la producción. Los contenedores de desarrollo se adaptan a aplicaciones complejas, pero requieren más configuración que los emuladores.

Emuladores

Los emuladores incluyen:

Contenedores de desarrollo

Los contenedores de desarrollo ofrecen una alternativa eficaz al uso de emuladores para el desarrollo local, especialmente en el trabajo con servicios de Azure.

Al ejecutar servicios en contenedores, cree un entorno local que refleje estrechamente el entorno de producción para proporcionar coherencia en las fases de desarrollo, pruebas e implementación. También mejora la confiabilidad de las pruebas mediante la simulación de condiciones reales con mayor precisión.

Configure contenedores para replicar la configuración y los datos de los servicios de Azure. De este modo, los contenedores proporcionan una plataforma sólida para desarrollar y probar aplicaciones sin la sobrecarga de conectarse a servicios activos de Azure.

Los contenedores de desarrollo incluyen Azure SQL Database.

Aprende más:

Pruebas unitarias en JavaScript

Las pruebas unitarias con SDK de Azure en JavaScript suelen usar marcos como Jest o Vitest para aislar y probar funciones o componentes individuales.

Para las pruebas nativas de Node.js, se simulan las llamadas al SDK de Azure manualmente sin necesidad de bibliotecas adicionales, ya sea sobrescribiendo métodos en los prototipos de los clientes del SDK o utilizando funciones simuladas sencillas.

Para más información, consulte la sección Pruebas del SDK de Azure más adelante en este artículo.

Pruebas de integración en JavaScript

Las pruebas de integración evalúan la interacción entre la aplicación y los servicios de Azure, para ayudar a garantizar que los componentes funcionen juntos según lo previsto.

Configure pruebas de integración automatizadas mediante Azure Pipelines en Azure DevOps o flujos de trabajo en GitHub Actions. Este enfoque automatiza la implementación y las pruebas de componentes en un entorno de nube. Ayuda a identificar problemas que podrían no ser evidentes durante las pruebas unitarias, como errores de configuración del servicio o latencia de red.

Servicios ficticios de Azure

La simulación de servicios de Azure es una práctica habitual en la prueba de aplicaciones de JavaScript que se integran con los SDK de Azure. Mediante la simulación de respuestas de servicio de Azure, aísle la lógica de la aplicación de dependencias externas, lo que ayuda a garantizar que las pruebas se ejecuten de forma rápida y confiable.

Obtenga más información sobre cómo probar las integraciones del SDK de Azure.

Pruebas de integración continuas

Las pruebas de CI implican la ejecución automática de pruebas cada vez que se realiza un cambio en el código base. Las herramientas de CI como Azure DevOps proporcionan entornos integrados para automatizar compilaciones, pruebas e implementaciones. La configuración de canalizaciones para incluir pruebas automatizadas ayuda a garantizar que se comprueba cada cambio, lo que reduce la probabilidad de errores y regresiones.

La configuración de canalización adecuada es fundamental para procesos de CI eficientes. Incluye la configuración de desencadenadores para la ejecución automática de pruebas y la configuración de entornos para varias fases de pruebas.

Aprende más:

Planes de prueba de Azure

Azure Test Plans ofrece un conjunto completo de pruebas manuales y exploratorias en Azure DevOps.

Este servicio puede ayudar en escenarios que requieren juicio humano o son difíciles de automatizar, proporcionando un enfoque estructurado para las pruebas manuales. Teams puede usarlo para planear, ejecutar y realizar un seguimiento de las actividades de prueba, incluida la captura de datos enriquecidos como capturas de pantalla y vídeos para ayudar en la generación de informes de errores. La integración de Azure Test Plans en el proceso de CI/CD proporciona una estrategia de prueba holística que cubre los casos de prueba automatizados y manuales.

Pruebas de extremo a extremo

Las pruebas de un extremo a otro validan el funcionamiento completo de una aplicación en un entorno que simula escenarios de usuario reales. Mediante el uso de marcos como Playwright, puede automatizar las pruebas basadas en explorador para interactuar con las aplicaciones como lo harían los usuarios.

Las pruebas basadas en escenarios implican la creación de casos de prueba para flujos de usuario completos, como registrarse, realizar una tarea y cerrar sesión. Use esta prueba para comprobar la funcionalidad de la aplicación y la experiencia del usuario en Azure.

Aprende más:

Pruebas de rendimiento

Las pruebas de rendimiento son esenciales para que las aplicaciones implementadas en Azure ayuden a garantizar que puedan controlar las cargas esperadas y que funcionen bien bajo estrés.

La prueba comparativa implica medir el rendimiento de la aplicación con respecto a las métricas o estándares definidos. Use el servicio Azure Load Testing para simular un tráfico elevado y analizar la escalabilidad y la resistencia de una aplicación.

Ejemplo de la CLI:

az load test create --resource-group MyResourceGroup --name MyLoadTest --file loadTestConfig.json

Aprende más:

Pruebas de seguridad

Las pruebas de seguridad en Azure implican identificar posibles vulnerabilidades en la aplicación para evitar infracciones de acceso o datos no autorizados.

Las herramientas de examen de vulnerabilidades son esenciales para detectar automáticamente puntos débiles de seguridad en el código o las configuraciones. Mediante la integración de características de Seguridad avanzada de GitHub con herramientas tradicionales de pruebas de seguridad de aplicaciones estáticas (SAST), puede mejorar la posición de seguridad de las aplicaciones implementadas en Azure. Entre las características clave se incluyen:

  • Examen de código: identifica las vulnerabilidades dentro del código base antes de la implementación.
  • Escaneo de secretos: ayuda a prevenir la exposición de datos confidenciales.
  • Supervisión de la cadena de suministro: ayuda a protegerse frente a las dependencias potencialmente comprometidas.

Estas medidas de seguridad integradas pueden ayudarle a identificar las vulnerabilidades al principio, evitar infracciones de datos y garantizar la integridad de la cadena de suministro de la aplicación.

Las pruebas de penetración simulan ciberataques contra la aplicación para evaluar su posición de seguridad. Azure proporciona instrucciones y herramientas para realizar estas pruebas, para ayudar a garantizar que las aplicaciones implementadas en la plataforma sean seguras frente a amenazas.

Se recomienda integrar CodeQL en la canalización de CI para detectar vulnerabilidades al principio.

Aprende más:

Pruebas de cumplimiento y gobernanza

Garantizar que las aplicaciones cumplan los requisitos legales, normativos y de directivas es fundamental, especialmente en entornos en la nube. Las pruebas de cumplimiento normativo comprueban que la aplicación cumple los estándares como RGPD, HIPAA o SOC 2.

Azure ofrece herramientas de cumplimiento y directivas, como Azure Policy y Azure Blueprints, para ayudar a automatizar y aplicar el cumplimiento en los recursos de Azure. Estas herramientas simplifican el proceso de mantenimiento de los estándares de gobernanza y cumplimiento en las implementaciones de aplicaciones.

Aprende más:

Pruebas de accesibilidad

Las pruebas de accesibilidad son esenciales para hacer que el software sea inclusivo y compatible con los estándares legales. Herramientas como Accessibility Insights ayudan a identificar y corregir problemas de accesibilidad en aplicaciones web y móviles. La integración de Accessibility Insights en flujos de trabajo de desarrollo facilita comprobaciones automatizadas y manuales al ofrecer instrucciones e informes basados en estándares de directrices de accesibilidad de contenido web (WCAG).

Pruebas A/B

Las pruebas A/B, o las pruebas divididas, son un método para comparar dos versiones de una página web o una aplicación entre sí para determinar cuál funciona mejor. Azure proporciona los siguientes servicios que admiten pruebas A/B:

  • Azure App Service: ofrece ranuras de implementación para permitir entornos de ensayo en los que puede probar las versiones de la aplicación sin afectar a la aplicación activa.

  • Azure Container Apps: ofrece un entorno flexible para ejecutar aplicaciones basadas en microservicios. Puede implementar pruebas A/B en este entorno para probar las versiones de la aplicación.

Use estos servicios para implementar variaciones de las aplicaciones y, a continuación, medir la respuesta y la eficacia del usuario.

Pruebas del SDK de Azure

Para los desarrolladores que trabajan con servicios de Azure, obtener competencia con los SDK de Azure es esencial para crear aplicaciones sólidas y escalables. Las siguientes pruebas del SDK de Azure hospedadas en GitHub para los SDK de JavaScript son recursos valiosos:

La exploración de estas pruebas ofrece información sobre la integración sin problemas del servicio de Azure, muestra los procedimientos recomendados para la interacción de recursos de Azure y ayuda a garantizar implementaciones eficaces y seguras. Explore una gama más amplia de ejemplos del SDK para obtener una comprensión completa.

Recursos adicionales