@ -135,3 +135,17 @@ Mit Tests wird die Qualität unseres Produktes bestimmt und die Frage geklärt,
### Wiederholung
### Wiederholung
Es existieren 3 Arten von Fehlerauftritten. Latente Fehler treten auf, wenn die Daten nicht wie erwartet sind. Diese sind am häufigsten zu finden, und werden von dem Anwender gefunden. Maskierte Fehler werden meist von latenten Fehlern verdeckt. Erst nach den latenten Fehlern können diese gefunden werden. Kaskadierte Fehler sind "drittfehler", folgen auf andere Fehler und sind deshalb im eigentlichen Sinn keine (direkten) Fehler.
Es existieren 3 Arten von Fehlerauftritten. Latente Fehler treten auf, wenn die Daten nicht wie erwartet sind. Diese sind am häufigsten zu finden, und werden von dem Anwender gefunden. Maskierte Fehler werden meist von latenten Fehlern verdeckt. Erst nach den latenten Fehlern können diese gefunden werden. Kaskadierte Fehler sind "drittfehler", folgen auf andere Fehler und sind deshalb im eigentlichen Sinn keine (direkten) Fehler.
## Vorlesung vom 19.12.2023
### Lernziel
In dieser Vorlesung wurde Testenautomatisierung thematisiert. Anfangs wurde erklärt, weshalb Tests automatisiert werden müssen. Daraufhin wurden die Grundlagen erklärt, bis wir zu dem "Herzstück", den Unit tests, kamen. In der Übung wurde mit Beispiels-Unit-Tests experimentiert und Code überprüft.
### Erkenntnis
Mit Tests wird die Qualität unseres Produktes bestimmt und geklärt, ob man mit dem Produkt schon fertig ist. Dies hatten wir schon in der Vorlseung zu Tests allgemein. Jedoch haben wir gelernt, wo die Probleme bei manuellen Tests liegen und weshalb man viele automatisiert abhalten muss, vor allem bei größeren Projekten kommt man nicht drum herum. Dies ist anwendbar und auch bewerteret Bestandteil unseres Projektes.
### Wiederholung
An der Qualität der Tests kann man direkt mitwirken. EIgentlich sollte es schon im vorhinein, beim erstellen des Codes, passieren. Mithilfe des Clean Code und des uns bekannten SOLID Printips in etwa. Die wichtigsten Regeln sind Seperation of Concerns, also das möglichst unabhängige Aufstellen von Code, welcher sich nicht gegenseitig beeinflusst. Dependency Inversion sagt aus, dass Module höherer Ebenen nicht von Modulen niedrigerer Ebenen abhängen sollen. Ebenfalls sollen die möglichst nächsten Objekte gekoppelt sein. Das Gegenteil wäre, wenn viele verschiedene Objekte miteinander "kommunizieren", wodurch die Testbarkeit leidet.