TDD & CI/CD
Este artículo es una definición de conceptos sobre TDD y CI/CD, incluyendo preguntas de examen, componentes clave y etiquetas.
En Pocas Palabras
TDD: los tests se escriben antes del código (Red–Green–Refactor). CI/CD: integración y entrega automatizadas mediante pipelines.
Descripción Técnica Compacta
TDD sigue este ciclo:
- Red: escribir un test que falla
- Green: código mínimo para que el test pase
- Refactor: mejorar sin cambiar la funcionalidad
CI/CD:
- CI: compilación y pruebas automáticas después de cada commit
- CD: entrega automatizada (Delivery hasta staging, Deployment hasta producción)
Puntos Clave para el Examen
- TDD = tests primero
- Red-Green-Refactor
- CI = compilación y pruebas automatizadas
- CD = entrega automatizada (relevante para IHK)
- TDD aumenta la cobertura de tests
- CI/CD reduce errores manuales (seguridad)
- Lanzamientos más rápidos (economía)
- La pipeline debe estar documentada
Componentes Principales
- Unit Tests
- Frameworks de testing (JUnit/pytest)
- Servidores CI (Jenkins/GitHub Actions)
- Build Tools
- Container/Deployment
- Scripts de pipeline
- Estrategias de rollback
- Entornos de staging
- Herramientas de calidad de código
Ejemplo Práctico (pytest)
def add(a, b):
return a + b
def test_add():
assert add(2, 3) == 5
Ventajas y Desventajas
Ventajas
- Mayor calidad de código
- QA automatizado
- Búsqueda de errores más rápida
- Deployments reproducibles
Desventajas
- Inversión inicial
- Infraestructura necesaria
- Requiere disciplina
Preguntas Típicas de Examen (con Respuesta Corta)
- ¿Qué significa Red-Green-Refactor? Escribir un test, implementar mínimamente, luego refactorizar.
- ¿Objetivo de CI? Testing automatizado e integración continua.
- ¿Diferencia entre Delivery y Deployment? Delivery llega hasta staging, Deployment hasta producción.
Respuesta Libre
TDD obliga a pensar temprano en requisitos e interfaces. CI/CD es estándar en el contexto DevOps y demuestra profesionalidad en proyectos.
Estrategia de Aprendizaje
- Desarrollar una función pequeña usando TDD.
- Configurar una pipeline de GitHub Actions para compilación y pruebas.
- Esbozar la pipeline en papel (para el examen).
- Nunca hacer deployment sin tests.



