Skip to content
IRC-CodingIRC-Coding
TDDCICDRed Green RefactorGitHub Actions

TDD y CI/CD explicado: Red-Green-Refactor

Test-Driven Development y CI/CD: Red-Green-Refactor, Continuous Integration/Delivery/Deployment, herramientas y ejemplos prácticos.

S

schutzgeist

1 min read
TDD y CI/CD explicado: Red-Green-Refactor

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

  1. Unit Tests
  2. Frameworks de testing (JUnit/pytest)
  3. Servidores CI (Jenkins/GitHub Actions)
  4. Build Tools
  5. Container/Deployment
  6. Scripts de pipeline
  7. Estrategias de rollback
  8. Entornos de staging
  9. 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)

  1. ¿Qué significa Red-Green-Refactor? Escribir un test, implementar mínimamente, luego refactorizar.
  2. ¿Objetivo de CI? Testing automatizado e integración continua.
  3. ¿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

  1. Desarrollar una función pequeña usando TDD.
  2. Configurar una pipeline de GitHub Actions para compilación y pruebas.
  3. Esbozar la pipeline en papel (para el examen).
  4. Nunca hacer deployment sin tests.

Fuentes Principales

  1. https://martinfowler.com/bliki/TestDrivenDevelopment.html
  2. https://docs.github.com/en/actions
Volver al blog
Share:

Nächster Artikel in Arquitectura de Software

Weiterlesen
TDD y CI/CD explicados: Red-Green-Refactor

Entradas relacionadas