#Übung Tests ### Was ist ein Test? Prozess der die Funktionalität der Software prüft. Ein Versuch auf mehreren Art und Weisen eine Software auszuprobieren, ob sie fehlerfrei oder fehlerbehaftet läuft und den Erwartungen entspricht ### Was ist ein Fehler? Abweichung Soll/Ist Zustand Ein Fehler ist ein unerwünschtes Verhalten der Software, welches durch mehrere Einflüsse auftreten kann z.B.: Tippfehler, Daten sind nicht wie erwartet, Folgefehler ### Welche Ziele haben Tests? unerwünschtes Verhalten der Software voraussehen Qualitätsicherung Grenzen der Software ermitteln vertrautheit mit der Software ### Nennen Sie die Bestandteile eines Tests Testfall Testdaten -> Korrekte und fehlerhafte Daten Testumgebung -> Software, Hardware, Netzwerk Testprozedur -> Beschreibt die genauen Instruktionen, die bei dem Testfall Testausführung -> Verhalten der Software beobachten & Ausgabe prüfem Testresultat -> Abgleich Erwartungswert vs. Realität Testbericht -> Testresultate zusammenfassen, Performance-Metriken auswerten Stichproben, Testobjekt, Testumgebung, Testziel, Vergleich Soll/Ist Werte ### Welche Bedeutung hat die Testpyramide Visualisiert die unterschiedlichen Teststufen Konzept der die ausgewogene Balance zwischen unterschiedlichen Testarten herstellt Unterste Layer: Unit Tests Mittlere Layer:Integration Tests Top Layer: UI/End-to-End Fehler sollen frühzeitig, kostengünstig behoben werden. Effizient beim Testing -> rasches Feedback Weiter oben in der Hierachie komplexere Tests ### Beschreiben Sie einen Testfall 1) Kennzeichnung Ziel: Definieren des eigentliches Ziels des Testfalles 2) Bedingungen, Pre- und Postkonditionen 3) Eingabe/Daten: korrekte/fehlerhafte Daten 4) Erwartete Ausgabe: Klar definierte Reaktion auf Eingabe! 5) Schritte/Prozeduren: Konkrete Operation die ausgeführt werden soll 6) Dokumentation: Hilft bei der Rekonstruktion & Weiterentwicklung ### Testfälle Rechenoperation 1) Integer Division: - Eingabe: 10, 3 - Erwarteter Output: 3 Beschreibung: 1. Integer Multiplikation - Eingabe: 10, 3 - Erwarteter Output: 30 Beschreibung: - Bei der Integer Multiplikation mit 10 mal 3 soll 30 als Ergebnis dokumentiert werden 2. Integer Addition - Eingabe: 10, 3 - Erwarteter Output: 13 Beschreibung: - Bei der Integer Addition mit 10 plus 3 soll 13 als Ergebnis dokumentiert werden. 3. Integer Subtraktion - Eingabe: 10, 3 - Erwarteter Output 7 Beschreibung: - Bei der Integer Subtraktion mit 10 minus 3 soll 7 als Ergebnis dokumentiert werden. ### Testfälle Zeilenumbruch Intelligenter Zeilenumbruch Keine Eingabe 100 Eingaben bei 80 Max einer Zeile 80 Eingaben bei 80 Max einer Zeile ### Beispiele veröffentliche Softwarefehler latent versteckter Fehler OpenSSL Heartbleed (2014) maskiert verdeckter Fehler Pentium FDIV Bug (1994) kaskadiert Folgefehler Ariane 5 Flug 501 (1996)