Skip to content
IRC-Coding IRC-Coding
TDD Test-Driven Development CI/CD Continuous Integration Continuous Deployment Red Green Refactor Automatisierung

TDD & CI/CD einfach erklärt: Red-Green-Refactor & automatisierte Pipelines

Test-Driven Development mit Red-Green-Refactor-Zyklus und Continuous Integration/Continuous Delivery. Mit automatisierten Builds, Tests, Deployments, GitHub Actions, Jenkins.

S

schutzgeist

2 min read

TDD & CI/CD – Red-Green-Refactor & automatisierte Pipelines

Dieser Beitrag ist eine Begriffserklärung zu TDD und CI/CD – inklusive Prüfungsfragen und Tags.

In a Nutshell

Test-Driven Development (TDD) ist ein Entwicklungsansatz, bei dem Tests vor dem Code geschrieben werden. CI/CD beschreibt automatisierte Prozesse zum kontinuierlichen Integrieren und Ausliefern von Software.

Kompakte Fachbeschreibung

Test-Driven Development (TDD) folgt dem Zyklus: Red – Green – Refactor. Zuerst wird ein fehlender Test geschrieben (Red), dann der minimale Code zum Bestehen (Green), danach wird optimiert (Refactor). TDD fördert sauberen, testbaren Code und reduziert Fehler frühzeitig. CI/CD steht für Continuous Integration (automatisiertes Zusammenführen von Code in Hauptbranch mit Tests) und Continuous Deployment/Delivery, das Änderungen automatisiert in Staging oder Produktion ausliefert. CI/CD nutzt Tools wie GitHub Actions, Jenkins oder GitLab CI, kombiniert mit Unit-, Integration- und Akzeptanztests.

Prüfungsrelevante Stichpunkte

  • TDD = Test zuerst, dann Implementierung
  • Red-Green-Refactor-Zyklus
  • CI = Automatisiertes Bauen, Testen nach jedem Commit
  • CD = Automatisiertes Ausliefern auf Zielumgebungen (IHK-relevant)
  • TDD erhöht Testabdeckung und strukturiert Code
  • CI/CD reduziert manuelle Fehler und Sicherheitsrisiken
  • Schnellere Releases durch Automatisierung
  • Build- und Deploymentprozesse müssen dokumentiert sein

Kernkomponenten

  1. Unit Tests
  2. Test Frameworks (z.B. JUnit, pytest)
  3. CI-Server (z.B. Jenkins, GitHub Actions)
  4. Build Tools (z.B. Maven, Gradle)
  5. Docker für Deployment
  6. Pipeline-Skripte
  7. Automatisiertes Deployment (CD)
  8. Rollback-Strategien
  9. Staging-Umgebungen
  10. Testabdeckung und Code-Qualitätstools

Praxisbeispiel

# Beispiel TDD (Python mit pytest)
def add(a, b):
    return a + b

def test_add():
    assert add(2, 3) == 5

Erklärung: Erst wird der Test geschrieben, der fehlschlägt (Red). Danach wird add() implementiert (Green). Anschließend wird die Struktur ggf. verbessert (Refactor).

Vorteile und Nachteile

Vorteile

  • Höhere Codequalität
  • Automatisierte Qualitätssicherung
  • Schnellere Fehlersuche
  • Wiederholbare und sichere Deployments

Nachteile

  • Höherer Initialaufwand
  • Infrastruktur nötig (CI/CD-Systeme)
  • Erfordert diszipliniertes Vorgehen

Typische Prüfungsfragen (mit Kurzantwort)

  1. “Red-Green-Refactor” in TDD? Test schreiben (Rot), minimaler Code (Grün), dann Refactoring.
  2. Ziel von CI? Automatisiertes Testen und Zusammenführen von Codeänderungen.
  3. CD unterstützt Entwicklungsprozess? Durch automatisiertes Ausliefern von getesteten Versionen.
  4. Tests bei CI/CD automatisch? Unit-, Integrations-, ggf. Akzeptanztests.
  5. Continuous Delivery vs. Deployment? Delivery = bis Staging, Deployment = direkt in Produktion.
  6. TDD fördert Softwarequalität? Fehler werden früh erkannt, Code ist besser strukturiert.
  7. CI/CD Tools häufig eingesetzt? Jenkins, GitHub Actions, GitLab CI, Travis CI.
  8. CI/CD-Prozess dokumentieren? Als Pipeline-Konfiguration (YAML-Datei) mit Beschreibung aller Schritte.

Wichtigste Quellen

  1. https://martinfowler.com/bliki/TestDrivenDevelopment.html
  2. https://docs.github.com/en/actions
  3. https://www.atlassian.com/continuous-delivery
  4. https://docs.pytest.org/en/latest/
  5. https://learn.microsoft.com/en-us/azure/devops/pipelines/index
Zurück zum Blog
Share:

Ähnliche Beiträge