diff --git a/Lerntagebuch.md b/Lerntagebuch.md index e186d55..2fc9816 100644 --- a/Lerntagebuch.md +++ b/Lerntagebuch.md @@ -161,3 +161,31 @@ Anmerkung: Ich habe zur Übung eine Datei namens "Projektmanagement.md" im repos --- ## SU 07(15.12.2023) + +### Lernziel + + - Testmethodologie + - Testprozess + - Psychologische Aspekte + - "Error - Defect - Failure" + +### Erkenntnis + +Wir weden "Testing" benutzen, um menschliche Fehler zu erkennen und auszubessern. Wenn man nicht Testen sollte, +kann das zu einem unerwünschtem Verhalten in der Software kommen. Dies wiederum kann bei Fehler durch beispielweise +Materialverlust sehr teuer werden. + +### Wiederholung + +Die "Testpyramide" gibt an welche verschiedene Arten von Tests mit welcher Geschwindigkeit und zu welchen Kosten +ausgeführt werden können. Somit werden bei "Unit tests" viele kleine Module und bei +"GUI Tests" immer mehr zugehörige und komplexere Zusammenhänge im Code getestet. + +### Kritik + +Ich habe keine Kritik zur letzten Vorlesungswoche. + +Anmerkung: Ich habe zur Übung eine Datei namens "Testen.md" im repository angelegt. + + --- +## SU 08(22.12.2023) diff --git a/Testen.md b/Testen.md new file mode 100644 index 0000000..fb244b4 --- /dev/null +++ b/Testen.md @@ -0,0 +1,105 @@ +# Test +-ein methodischer Versuch, mit dem festgestellt werden soll, ob +Eigenschaften oder Leistung einer Sache, einer Person oder einer +Hypothese den Erwartungen entsprechen" +-Prozess der die Funktionalität der SW prüft + +# Fehler +-sind Abweichungen zu einem geforderten beziehungsweise gewünschtem Sollzustand +-Abweichung Soll-/Ist-Zustand + +# Testziele +-Fehler aufzeigen +-Qualität erfassen +-Vertrauen erhöhen +-Grenzen ermitteln +-> Verhalten des Codes prüfem + +# Testbestandteile +-Testfall +-Testdaten -> Korrekt & fehlerhafte Daten +-Testumgebung -> Software, Hardware, Netzwerk +-Testprozedur -> Beschreibt die ganuen Instruktionen, die bei dem Testfall ausgeführt werden +-Testausführung -> Verhalten der SW beobachten & Ausgabe prüfen +-Testresultat -> Abgleich Erwartungswert vs. Realität +-Testbericht -> Testresultate zusammen fassen, Performance-Metriken auswerten + +# Testpyramide +-gibt an welche verschiedene Arten von Tests mit welcher Geschwindigkeit und zu welchen Kosten +ausgeführt werden können. Somit werden bei "Unit tests" viele kleine Module und bei +"GUI Tests" immer mehr zugehörige und komplexere Zusammenhänge im Code getestet. +-Konzept der die ausgewogene Balance zw. unterschiedlichen Testarten + +Unterste Layer: Unit Tests +Mittlere Layer: Integration Tests +Top Layer: UI/End-to-End + +Fehler sollen frühzeitig, kostengünstig behoben werden +Effizienz beim Testing -> Rasches Feedback +Weiter oben in der Hierachie komplexere Tests + +# Prozessbeschreibung: Entwicklung von Testfällen +-Testvorbedingungen +-Testdefinition +-Testdaten +-Testerwartungen +-Testnachbedingungen +-Testrahmenbedingungen + +Positivtests: +->gültige Eingaben +->Prüfung des Funktionalität eines Testobjekts + +Negativtests: +->ungültige Eingaben +->Prüfung der Robustheit eines Testobjekts + +1) Ziel: Definieren des eigentlichen Ziels des Testfallen +2) Bedingungen, Pre- und Postkonditionen +3) Eingabe/Daten: korrekte/fehlerhafte Daten, +4) Erwartete Ausgabe: Klar definierte Reaktion auf Eingabe +5) Schritte/Prozeduren: Konkrete Operationen die ausgeführt werden sollen +6) Dokumentation: Hilft bei Rekonstruktion & Weiterbildung + +# Testfälle: Rechenoperationen +1. Integer Division: +Eingabe: 10, 3 +Erwartete Ausgabe: 3 +Beschreibung: Bei der Division von den Zahlen 10 und 3 soll der Quotient 3 sein, da der Restwert nicht ausgegeben +wird. + +2. Integer Addition: +Eingabe: 10, 3 +Erwartete Ausgabe: 13 +Beschreibung: Bei der Addition von den Zahlen 10 und 3 soll die Summe 13 sein. + +3. Integer Subtraktion: +Eingabe: 10, 3 +Erwartete Ausgabe: 7 +Beschreibung: Bei der Subtraktion von den Zahlen 10 und 3 soll die Differenz 7 sein. + +# Testfälle: Zeilenumbruch +1. Normale Zeilenlänge: +Eingabe: "Dies ist ein Satz der perfekt in die spezifizierte Zeilenlänge passt." +Erwartete Ausgabe: "Dies ist ein Satz der perfekt in die spezifizierte Zeilenlänge passt." +Beschreibung: Zeilenumbruchsfunktion soll den Eingabetext nicht modifizieren, da er in die spezifizierte +Zeilenlänge passt. + +2. keine Zeilenlänge: +Eingabe: " " +Ausgabe: " " +Beschreibung: Bei keiner Zeilenlänge wird die Funktion nicht benutzt + +# Testfälle: Selbsteinschreibung horstl +1. Selbsteinschreibung bei Kapazitätgrenze +Eingabe: Student schreibt sich ein +Erwartete Ausgabe: Einschreibung abgelehnt + +2. Selbsteinschreibung bei ausreichenden Plätzen +Eingabe: Student schreibt sich ein +Erwartete Ausgabe. Einschreibung erfolgt + +# Fehlertypen +1) latent: man findet ihn nicht +2) maskiert: Fehler, der von einem anderen Fehler verdeckt worden ist +3) kaskadiert: Folgefehler