3.5 KiB
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
- Ziel: Definieren des eigentlichen Ziels des Testfallen
- Bedingungen, Pre- und Postkonditionen
- Eingabe/Daten: korrekte/fehlerhafte Daten,
- Erwartete Ausgabe: Klar definierte Reaktion auf Eingabe
- Schritte/Prozeduren: Konkrete Operationen die ausgeführt werden sollen
- Dokumentation: Hilft bei Rekonstruktion & Weiterbildung
Testfälle: Rechenoperationen
-
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.
-
Integer Addition: Eingabe: 10, 3 Erwartete Ausgabe: 13 Beschreibung: Bei der Addition von den Zahlen 10 und 3 soll die Summe 13 sein.
-
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
-
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.
-
keine Zeilenlänge: Eingabe: " " Ausgabe: " " Beschreibung: Bei keiner Zeilenlänge wird die Funktion nicht benutzt
Testfälle: Selbsteinschreibung horstl
-
Selbsteinschreibung bei Kapazitätgrenze Eingabe: Student schreibt sich ein Erwartete Ausgabe: Einschreibung abgelehnt
-
Selbsteinschreibung bei ausreichenden Plätzen Eingabe: Student schreibt sich ein Erwartete Ausgabe. Einschreibung erfolgt
Fehlertypen
- latent: man findet ihn nicht
- maskiert: Fehler, der von einem anderen Fehler verdeckt worden ist
- kaskadiert: Folgefehler
zu 1) OpenSSL Heartbleed (2014) zu 2) Pentium FDIV Bug (1994) zu 3) Ariane 5 Flug 501 (1996)