Skip to content
IRC-CodingIRC-Coding
CI/CDTestingTestautomatisierungPipelineDevOpsContinuous IntegrationContinuous Deployment

CI/CD und Testing: Automatisierte Qualität in der Pipeline

Lerne, wie CI/CD und Testing zusammenwirken. Pipeline-Stages, Testautomatisierung, Deployment-Strategien und Best Practices für qualitativ hochwertige Releases.

S

schutzgeist

2 min read
CI/CD und Testing: Automatisierte Qualität in der Pipeline

CI/CD und Testing

Continuous Integration und Continuous Delivery, kurz CI/CD, sind die technische Grundlage für schnelles und sicheres Software-Deployment. Testing ist in CI/CD ein zentrales Qualitätsmerkmal. Eine gut durchdachte Pipeline führt automatisierte Tests in der richtigen Reihenfolge aus und sorgt dafür, dass nur geprüfter Code in Produktion gelangt.

In a Nutshell

  • CI/CD automatisiert Bauen, Testen und Deployen.
  • Tests werden in Stages von schnell zu langsam ausgeführt.
  • Continuous Integration fokussiert auf Zusammenführen und Testen.
  • Continuous Delivery und Deployment ermöglichen häufige Releases.
  • Eine stabile Pipeline braucht schnelle Tests, klare Stages und zuverlässige Umgebungen.

Kompakte Fachbeschreibung

CI/CD beschreibt Prozesse, bei denen Code-Änderungen automatisch gebaut, getestet und ausgeliefert werden. Continuous Integration bedeutet regelmäßiges Einchecken und automatisches Testen. Continuous Delivery bereitet Releases automatisch vor, erfordert aber einen manuellen Freigabeschritt. Continuous Deployment führt Releases ohne menschlichen Eingriff durch.

Typische Pipeline-Stages

  1. Checkout: Quellcode holen.
  2. Build: Kompilieren und Abhängigkeiten installieren.
  3. Static Analysis: Linting und Formatierung.
  4. Unit Tests: Schnelle Tests für isolierte Logik.
  5. Integration Tests: Zusammenspiel prüfen.
  6. E2E Tests: Kritische Anwenderabläufe.
  7. Performance Tests: Laufzeitverhalten.
  8. Security Tests: Sicherheitslücken finden.
  9. Deploy to Staging: Bereitstellung auf Testumgebung.
  10. Deploy to Production: Freigabe der Software.

Deployment-Strategien

  • Blue-Green: Zwei parallele Umgebungen ermöglichen schnelles Rollback.
  • Canary: Schrittweises Rollout für einen kleinen Nutzeranteil.
  • Feature Flags: Funktionen zur Laufzeit ein- oder ausschalten.

Praxisbeispiel

Pipeline:
1. Checkout
2. npm install
3. npm run lint
4. npm run test:unit
5. npm run test:integration
6. npm run build
7. npm run test:e2e
8. Deploy to staging
9. Manual approval
10. Deploy to production

Vorteile und Nachteile

Vorteile

  • Schnelles Feedback nach jedem Commit.
  • Häufige, risikoarme Releases.
  • Reproduzierbare Builds.
  • Weniger manuelle Fehler.
  • Höhere Softwarequalität.

Nachteile

  • Initialer Aufbauaufwand.
  • Komplexität bei Umgebungen und Secrets.
  • Pipeline-Flakiness durch instabile Tests.
  • Sicherheitsanforderungen an Credentials.

Prüfungsrelevante Stichpunkte

  • Unterschied CI, CDelivery, CDeployment.
  • Typische Pipeline-Stages.
  • Deployment-Strategien.
  • Bedeutung von Testautomatisierung.
  • Vorteile und Risiken.

Typische Prüfungsfragen (mit Kurzantwort)

  1. Was bedeutet CI/CD? Automatisierte Prozesse zum Bauen, Testen und Ausliefern.

  2. Warum laufen Unit Tests zuerst? Sie sind schnell und liefern sofortiges Feedback.

  3. Was ist ein Canary Release? Schrittweises Rollout für einen kleinen Nutzeranteil.

  4. Was ist ein Feature Flag? Schalter zur Laufzeit, um Funktionen ein- oder auszuschalten.

  5. Was ist ein Vorteil von Blue-Green? Schnelles Rollback bei Problemen.

Wichtigste Quellen

  1. https://martinfowler.com/articles/continuousIntegration.html
  2. https://www.atlassian.com/continuous-delivery
  3. https://en.wikipedia.org/wiki/CI/CD

Häufig gestellte Fragen

Was ist CI/CD?

Automatisierte Prozesse zum Bauen, Testen und Ausliefern.

Was ist der Unterschied zwischen Delivery und Deployment?

Delivery bereitet vor, Deployment läuft automatisch.

Welche Tests laufen zuerst?

Statische Analyse, Linting und Unit Tests.

Was ist ein Canary Release?

Schrittweises Rollout für wenige Nutzer.

Was ist Blue-Green Deployment?

Zwei parallele Umgebungen für schnelles Rollback.

Was ist ein Feature Flag?

Schalter zur Laufzeit.

Wie schützt man Secrets?

Verschlüsselt hinterlegen und über Umgebungsvariablen einbinden.

Was ist ein Nightly Build?

Nächtlicher Build mit umfangreicheren Tests.

Was ist ein Quality Gate?

Qualitätsbedingung vor dem nächsten Schritt.

Warum sind flaky Tests problematisch?

Unvorhersehbare Fehler untergraben Vertrauen.

Was ist ein Rolling Deployment?

Instanzen nach und nach aktualisiert.

Was ist ein Build-Artefakt?

Ergebnis eines Builds.

Welche Rolle spielt Testing in DevOps?

Zentrale Rolle für schnelles Feedback.

Was ist ein Staging-Environment?

Vorproduktionsumgebung für realitätsnahe Tests.

Was ist ein manueller Freigabeschritt?

Explizite Genehmigung vor dem Release.

Weiter im Software Testing Lernpfad

Der nächste Artikel im Software Testing Lernpfad behandelt Regressionstests — wie Regressionstests sicherstellen, dass neue Änderungen bestehende Funktionen nicht zerstören.

Zurück zum DEV Blog
Share:

Ähnliche Beiträge