Ambiente de Pruebas
La mejora continua se apoya fuertemente en nuestra capacidad para experimentar y probar nuevas ideas en entornos seguros y controlados. Nuestros ambientes de prueba están diseñados para facilitar la innovación y garantizar la calidad antes de que los cambios lleguen a producción.
Ambiente de Staging
El ambiente de Staging es una pieza clave en nuestro proceso de validación.
- Propósito: Es un entorno de pre-producción que replica lo más fielmente posible el ambiente de producción. Su objetivo principal es realizar las pruebas finales de aceptación (UAT) y regresión.
- Características:
- Infraestructura Idéntica: Utiliza la misma configuración de infraestructura (versiones de servicios, configuraciones de red, etc.) que producción.
- Datos Anónimos: Se puebla con un conjunto de datos realista pero anonimizado para permitir pruebas funcionales sin exponer información sensible.
- Conexiones a Servicios Externos: Se conecta a las versiones de prueba (sandbox) de servicios de terceros.
- Proceso de Uso:
- El equipo de desarrollo despliega una nueva versión candidata (release candidate) en Staging.
- El equipo de Q&A ejecuta el plan de pruebas de regresión y UAT.
- Los stakeholders del negocio pueden acceder a este entorno para validar las nuevas funcionalidades.
- Solo después de la aprobación en Staging, una versión puede ser programada para su despliegue en producción.
Pruebas de Rendimiento y Carga
Asegurar que nuestras aplicaciones puedan manejar la demanda de los usuarios es fundamental.
- Propósito: Identificar cuellos de botella, medir los tiempos de respuesta y determinar la capacidad máxima del sistema bajo carga.
- Entorno: Estas pruebas se realizan en un entorno dedicado y aislado, idéntico en especificaciones al de producción, para no afectar a otros ambientes.
- Herramientas:
- JMeter / Gatling: Para la generación de scripts que simulan el comportamiento de miles de usuarios.
- K6: Una herramienta moderna para pruebas de carga, enfocada en la experiencia del desarrollador.
- Proceso:
- Se definen los escenarios de prueba basados en los casos de uso más comunes y críticos.
- Se ejecutan las pruebas, aumentando gradualmente la carga para encontrar el punto de quiebre.
- Se analizan los resultados (tiempos de respuesta, tasa de errores, consumo de recursos) para identificar áreas de mejora.
- Se realizan optimizaciones en el código o la infraestructura y se repiten las pruebas hasta alcanzar los objetivos de rendimiento.
Ambientes de Feature (Features Environments)
Para acelerar el ciclo de feedback, utilizamos ambientes efímeros por cada nueva funcionalidad.
- Propósito: Permitir a los desarrolladores, diseñadores y product owners probar una nueva funcionalidad de forma
aislada, sin tener que esperar a que se integre en la rama principal de
develop. - Cómo funciona:
- Cuando se crea un Pull Request, nuestro sistema de CI/CD aprovisiona automáticamente un nuevo ambiente temporal con los cambios de esa rama.
- Se genera una URL única para acceder a este ambiente.
- Una vez que el Pull Request se fusiona o se cierra, el ambiente se destruye automáticamente para liberar recursos.
- Beneficios: Facilita las revisiones y permite detectar problemas de manera temprana en el ciclo de desarrollo.