View a markdown version of this page

REL08-BP02 Integrar las pruebas funcionales como parte de su despliegue - AWS Well-Architected Framework

REL08-BP02 Integrar las pruebas funcionales como parte de su despliegue

Las pruebas funcionales se ejecutan como parte de la implementación automatizada. Si no se satisfacen los criterios de éxito, la canalización se detiene o se revierte. Estas pruebas realizan en un entorno de preproducción, que se lleva a cabo de forma escalonada antes de la producción en la canalización. Idealmente, esto se realiza como parte de una canalización de despliegue.

Resultado deseado: utiliza la automatización para realizar pruebas funcionales y los datos de prueba asociados reducen la duración y los gastos de las pruebas y mejoran la precisión de sus resultados. Integra las pruebas funcionales como parte de su proceso de despliegue, lo que le ayuda a automatizar sus canalizaciones de lanzamiento para obtener actualizaciones rápidas y fiables de las aplicaciones y la infraestructura.

Antipatrones usuales:

  • Las pruebas se realizan manualmente fuera de la canalización del despliegue.

  • Omite los pasos de prueba de la automatización mediante flujos de trabajo de emergencia manuales.

  • No sigue sus planes y procesos de prueba establecidos a favor de plazos más rápidos.

Beneficios de establecer esta práctica recomendada: las pruebas funcionales validan que el sistema funciona de acuerdo con los requisitos especificados. Se usa para verificar de manera sistemática el orden de funcionamiento previsto de los componentes, como las interfaces de usuario, las API, las bases de datos y el código fuente. Al examinar estos componentes del sistema, las pruebas funcionales verifican que cada característica se comporta según lo esperado, lo que garantiza tanto las expectativas del usuario como la integridad del software. Integra las pruebas funcionales como parte de su despliegue habitual y utiliza la automatización para desplegar todos los cambios, lo que reduce la posibilidad de que se produzcan errores humanos.

Nivel de riesgo expuesto si no se establece esta práctica recomendada: alto

Guía para la implementación

Integre las pruebas funcionales como parte de su despliegue. Las pruebas funcionales se ejecutan como parte de la implementación automatizada. Si no se cumplen los criterios de éxito, la canalización se detiene o se revierte. AWS CodePipeline proporciona una canalización de entrega continua para las pruebas automatizadas, lo que permite a los evaluadores automatizar todo el proceso de prueba y despliegue. Se integra con servicios de AWS como AWS CodeBuild y AWS CodeDeploy para automatizar las fases de creación, prueba y despliegue del ciclo de vida del desarrollo de software.

Pasos para la implementación

  • Configure su canalización: configure las etapas de origen, compilación, prueba y despliegue mediante la consola de AWS CodePipeline o la CLI de AWS Command Line Interface.

    • Defina su código fuente: con AWS CodePipeline, puede recuperar automáticamente el código fuente de sistemas de control de versiones como GitHub, AWS CodeCommit o Bitbucket, lo que garantiza que siempre se use el código más reciente para las pruebas.

    • Automatice las compilaciones y las pruebas: AWS CodeBuild puede compilar y probar automáticamente su código y generar informes de prueba. Es compatible con marcos de prueba populares como JUnit, NUnit y TestNG.

    • Despliegue su código: una vez que el código se haya creado y probado, AWS CodeDeploy puede desplegarlo en su entorno de prueba, incluso en las instancias de Amazon EC2, las funciones de AWS Lambda o los servidores locales.

    • Supervise las canalizaciones: AWS CodePipeline puede realizar un seguimiento del progreso de su canalización y el estado de cada etapa. También puede usar controles de calidad para bloquear la canalización según el estado de ejecución de la prueba. También puede recibir notificaciones cuando se produzca un fallo en una etapa de canalización o cuando se haya completado la canalización.

Recursos

Documentos relacionados: