@ -331,3 +331,58 @@ Ein Unittest ist muss vertrauenswuerdig sein. Dies bedeutet, dass der Produktivc
### Wiederholung
Durch die niedrigen Kosten, hohe Stabilitaet, Kritikatilitaet und die darauß folgende moegliche hohe Anzahl und hohe Wiederholungszahl sind Unittests die ueberwiegende Testart und somit die am hauefigsten zu erstellenden Tests.
## SU 10 (11.01.2023)
### Lernziele
- Continous Integration
- Bedeutung von CI im Softwareentwicklungsprozess
- Groesse von Software-Projekten
- hoehere Komplexitaet bei groesseren Projekten
- mehrere Entwickler arbeiten am Projekt
- Zusammenfuehrung der Einzelleistungen noetig
- Zusammenfuehren der Einzelleistungen
- technische und persoenliche Konflikte koennen auftreten
- hoher Aufwand
- Vorteile von CI Systemen
- Konfliktpotential wird durch formale Prozesse verringert
- geringerer Aufwand durch Automatisierung der Prozesse
- Vorstufe zu Continous Delivery
- Aufbau eine CI/CD-Systems
- Entwicklungsumgebung des Programmierers (IDE)
- SCM
- Abhaengigkeitsverwaltung
- build-Werkzeug
- Continous Integration Server
- SCM-Ueberwachung
- starten des build-Prozesses
- Ergebnisbericht
- Erweiterung fuer Continous Delivery
- Ablauf des CI-Prozesses
- Checking Change
- Fetch Change
- Build
- Test
- Ergebnisauswertung
- Benachrichtigung
- Rolle von automatisierten Tests
- Problem des Continous Integration
- compilierbar bedeutet nicht gleich ausfuehrbar
- CI sollte immer lieferbaren Stand bereit halten
- Vorteile automatisierte Tests
- Programm wird durch automatisierte Tests ausgefuehrt
- gewuenschtes Verhalten wird dokumentiert
- wiederholbar
- Laufzeitfehler werden erkannt
- zeitsparend durch Entkopplung der Ausfuehrungszeit von Arbeitszeit
- Grenzen automatisierter Tests
- finden Abweichungen von gewuenschten/bekanntem Verhalten
- kein Finden von neuen fachlichen Fehlern
### Erkenntnis
Groessere Software-Projekte sind komplexer als Kleine. Durch das Arbeiten von mehreren Entwicklern an einem Projekt ist es wichtig sich regelmaessig zu Besprechen und eine genaue Aufgabenaufteilung zu haben. Auch das Zusammenfuehren der Einzelleistungen ist komplexer und es erfordert mehr Aufmerksamkeit und Kompromissbereitschaft um einen funktionierenden Code zusammen zu Programmieren. Um Konflikte zu vermeiden ist es wichtig, am Anfang des Projektes Grundregeln festzulegen.
### Wiederholung
Automatisierte Tests fuehren Programme aus und dokumentieren das gewuenschte Verhalten. Durch die Wiederholbarkeit und die Moeglichkeit die Ausfuehrungszeit von der Arbeitszeit zu trennen sind automatisierte Tests sehr Arbeitszeitsparend.