- Danach sollte man einen Produktivcode, der gerademalso ausreicht um den Test zu erfüllen.
- Zuletzt sollte der Produktionscode und Test weiterverbessert werden, ohne einen Test fehlzuschlagen oder neue Funktionalitäten hinzuzufügen.
# Woche 10
(11.01.2023)
## Lernziele
- Die Bedeutung von CI im Softwarenetwicklungsprozess
- Der Aufbau eines CI/CD-Systems
- Der Ablauf eines CI-Prozesses
- Die Rolle von atumatiesierten Tests
## Wiederholung
- Die Größe eines Softwareprojekts bestimmt die steigende Komplexität, Anzahl der Entwickler und das Zusammenführen der Einzelleistungen.
- Beim Zusammenführen der Einzelleistungen, können mehrere Probleme entstehen:
- Zum einen der Widerspruch von Kreativität zur Konformität
- Des Weiteren technische Konflikte.
- Auch persönliche Konflikte.
- Schlussendlich noch der Aufwand.
- CI-Systeme haben mehrere Vorteile:
- Zum einen verringern formale Prozesse Konfliktpotential.
- Des Weiteren verringern automatisierte Prozesse den Aufwand.
- Es ist die Vorstufe zur Continous Delivery.
- CI/CD-Systems sind wie folgt aufgebaut:
- Entwicklungsumgebung des Programmierers
- Source Code Management System
- Abhängigkeitsverwaltung
- Continous Integration Server
- Erweiterung für Continous Delivery
- Der CI-Prozess ist wie folgt aufgebaut:
- Checkin Change
- Fetch Change
- Build
- Test
- Ergebnisauswertung
- Benachrichtigung
## Erkenntnis
- Continous Integration sollte immer compilierbar, also ausführbar sein, ohne Ausnahme!
- Ein automatisierter Tet würde zwar das Programm ausführen, gewünschtes Verhalten dokumentieren und Laufzeitfehler erkennen, aber das wars auch schon, es würde keine neuen fachlichen Fehler finden.