TDD & CI/CD
Dieser Beitrag ist eine Begriffserklärung zu TDD und CI/CD – inklusive Prüfungsfragen, Kernkomponenten und Tags.
In a Nutshell
TDD: Tests werden vor dem Code geschrieben (Red–Green–Refactor). CI/CD: automatisierte Integration und Auslieferung über Pipelines.
Kompakte Fachbeschreibung
TDD folgt dem Zyklus:
- Red: Test schreiben, der fehlschlägt
- Green: minimaler Code, damit Test besteht
- Refactor: verbessern ohne Funktionsänderung
CI/CD:
- CI: Build + Tests nach jedem Commit
- CD: automatisiertes Ausliefern (Delivery bis Staging, Deployment bis Produktion)
Prüfungsrelevante Stichpunkte
- TDD = Test zuerst
- Red-Green-Refactor
- CI = automatisiertes Bauen/Testen
- CD = automatisiertes Ausliefern (IHK-relevant)
- TDD erhöht Testabdeckung
- CI/CD reduziert manuelle Fehler (Sicherheit)
- Schnellere Releases (Wirtschaftlichkeit)
- Pipeline muss dokumentiert sein
Kernkomponenten
- Unit Tests
- Testframeworks (JUnit/pytest)
- CI-Server (Jenkins/GitHub Actions)
- Build Tools
- Container/Deployment
- Pipeline-Skripte
- Rollback-Strategien
- Staging-Umgebungen
- Code-Quality-Tools
Praxisbeispiel (pytest)
def add(a, b):
return a + b
def test_add():
assert add(2, 3) == 5
Vorteile und Nachteile
Vorteile
- Höhere Codequalität
- Automatisierte QS
- Schnellere Fehlersuche
- Wiederholbare Deployments
Nachteile
- Initialaufwand
- Infrastruktur nötig
- Disziplin erforderlich
Typische Prüfungsfragen (mit Kurzantwort)
- Was bedeutet Red-Green-Refactor? Test schreiben, minimal implementieren, dann refactoren.
- Ziel von CI? Automatisiertes Testen und Zusammenführen.
- Delivery vs Deployment? Delivery bis Staging, Deployment bis Produktion.
Freie Antwort
TDD zwingt früh über Anforderungen/Schnittstellen nachzudenken. CI/CD ist im DevOps-Kontext Standard und zeigt in Projekten Professionalität.
Lernstrategie
- Kleine Funktion per TDD entwickeln.
- GitHub Actions Pipeline für build/test einrichten.
- Pipeline auf Papier skizzieren (Prüfung).
- Kein Deployment ohne Tests.