Por qué tests centralizados son clave en CI
Clase 6 de 21 • Curso Profesional de DevOps
Contenido del curso
Containers y ambientes de desarrollo
Pruebas
Integración Continua
Despliegue Continuo
Reliability
Cierre del curso
Sin pruebas no hay confianza: esa es la base de continuous integration (CI). Aquí se explica por qué centralizar los tests en un servidor de CI y qué mínimo necesitas —unit, integration y, si das la milla extra, acceptance en staging— para llevar código seguro a producción. La idea guía es clara: todo vía código (infraestructura, containers y pruebas) para entender y verificar qué hace el sistema.
¿Qué exige un continuous integration confiable?
Un flujo CI solo sirve si tiene pruebas que correr. Correr tests manualmente es un “no”: no crea evidencia ni confianza compartida. Se necesita un servidor de CI centralizado que ejecute los tests y publique resultados visibles para el equipo.
- Centralizar la ejecución de tests en un servidor de CI.
- Evitar la validación “yo lo corrí en mi máquina”.
- Asegurar siempre suites mínimas: unit tests e integration tests.
- Entender que sin pruebas automatizadas, el CI no aporta valor.
¿Qué pruebas debes tener y cómo ejecutarlas?
El mínimo viable es pruebas de unidad e integración. Si puedes, agrega pruebas de aceptación contra un ambiente de staging muy cercano a producción; es el Holy Grail de la confiabilidad.
¿Cómo usar mocks en pruebas de unidad?
Para aislar lógica, usa mocks en unit tests. Si una función habla con una base como MongoDB, moquea la interfaz para no depender de servicios externos al probar la unidad.
- Aislar dependencias con mocks.
- Enfocar en la lógica de la función.
- Ejecutar rápido y localmente.
¿Qué datos usar en integración con MongoDB o Postgre?
En integration tests, levanta una base local (por ejemplo, MongoDB o Postgre). Alimenta con data vacía, réplica de producción o fixtures para validar interacciones reales.
- Subir servicios locales reales cuando integres.
- Usar dump y fixtures para datos representativos.
- Probar contra la base primaria que usa la app.
¿Por qué acceptance en staging aumenta la confianza?
Las pruebas de aceptación se ejecutan contra staging o test con la misma imagen de container e infraestructura que producción. Esto valida el comportamiento extremo a extremo.
- Hacer staging lo más parecido a producción.
- Ejecutar flujos reales end-to-end.
- Obtener señales fuertes antes del despliegue.
Además, adoptar el patrón todo vía código: infraestructura como código, containers definidos y pruebas automatizadas. Esto documenta con código cómo funciona cada parte y facilita diagnóstico y mantenimiento.
¿Cómo asegurar homogeneidad y calidad antes de producción?
La homogeneidad entre staging y producción es clave: mismo container y misma infraestructura. Así, lo que pasa en pruebas se traslada fielmente al entorno real.
- Mantener paridad entre ambientes.
- Ejecutar suites en CI tras cada cambio.
- Establecer la regla: si los tests no pasan, no se despliega.
Cuando corren estas pruebas en CI, el equipo gana garantías de comportamiento: si algo falla en unidad, integración o aceptación, ese cambio no avanza. Así se construye la confianza necesaria para operar en producción.
¿Ya automatizaste tus unit, integration y acceptance? Comparte tu experiencia y cómo mantienes staging en paridad con producción.