Dynamisch
Vorgehen die sich auf eine Programmausführung beziehen
Statisch
Vorgehen, die ohne Programmausführung auskommen
Definition: Unit Test (Modultest, Komponententest)
Unit: a part of a system that can be tested in isolation
Unit Testing: a test level that focuses on individual hardware or software units
Element eines Testfalls
Vorbedingungen: Zustand vor Ausführung
Eingaben: Parameter
Aktionen: Methodenausführung
erwartete Ergebnisse: Rückgaben
Nachbedingungen: Zustand nach Ausführung
Idee: Testgenauigkeit
Testfälle sind genau,
wenn korrekte Software alle Testfälle besteht
und fehlerhafte Software mindestens einen Testfall nicht. besteht
Mutationstests
Idee: Ändere den Programmcode leicht ab (Ergebnis: eine „Mutation“). Führe für die Mutation alle Testfälle aus. Erwarte, dass mindestens einen Testfall den fehlerhaften Code erkennt.
Automatisierung: Erstelle und prüfe automatisch sehr viele Mutationen. Erkenne schlechte Testgenauigkeit.
Test Smells
Idee: Code Smells sind Indizien für Probleme (eine Art Anti-Pattern). Testcode ist auch Code. Definiere typische schlechte Strukturen in Test-Code.
Umsetzung: Liste von Test Smells, z.B. testsmells.org Tools zur automatischen Erkennung von Test Smells
Last changed18 days ago