28 Eigenschaften guter Modultests Flashcards
Was bedeutet die Abkürzung “FIRST” im Kontext von Unit-Tests?
“FIRST” steht für die Eigenschaften guter Unit-Tests: Fast, Isolated, Repeatable, Self-Verifying und Timely.
Warum sollten Unit-Tests schnell (Fast) sein?
Je schneller Unit-Tests ablaufen, desto häufiger werden sie ausgeführt. Langsame Tests werden seltener ausgeführt, was die Effizienz der Testabdeckung und Fehlerentdeckung reduziert.
Was bedeutet es, dass Unit-Tests isoliert (Isolated) sein sollten?
Isolierte Unit-Tests haben keine Abhängigkeiten zu anderen Tests oder externen Systemen. Jeder Test sollte nur einen Aspekt prüfen und keinen Einfluss auf andere Tests haben.
Was bedeutet es, dass Unit-Tests wiederholbar (Repeatable) sein sollten?
Wiederholbare Unit-Tests sollten keine Nebeneffekte haben und deterministisch sein, das heißt, jede Testausführung sollte das gleiche Ergebnis liefern, unabhängig von äußeren Einflüssen.
Warum ist es wichtig, dass Unit-Tests selbstverifizierend (Self-Verifying) sind?
Selbstverifizierende Unit-Tests prüfen automatisch die Korrektheit des Codes, ohne dass eine manuelle Überprüfung notwendig ist. Dies reduziert Mehrdeutigkeiten und erhöht die Zuverlässigkeit der Tests.
Warum sollten Unit-Tests rechtzeitig (Timely) geschrieben werden?
Unit-Tests sollten idealerweise vor dem eigentlichen Code geschrieben werden (Test-Driven Development, TDD). Dadurch wird sichergestellt, dass der Code von Anfang an testbar ist und den Anforderungen entspricht.
Welche Vorteile bieten Unit-Tests?
- Schnellere Fehlererkennung und -behebung.
- Dokumentationscharakter (“specifications by example”).
- Schutz vor Regressionsfehlern, besonders bei Refactoring.
- Automatisierte Durchführung.
Welche Nachteile können Unit-Tests haben?
Initialer Mehraufwand von 15% bis 35%.
Tests müssen bei Änderungen am Programmcode angepasst werden.
Was ist der Unterschied zwischen Test-Driven Development (TDD) und Test-After Development (TAD)?
Bei TDD wird der Test vor dem eigentlichen Code geschrieben, was sicherstellt, dass der Code testbar ist und den Anforderungen entspricht. Bei TAD wird der Test nach der Implementierung des Codes geschrieben, was oft dazu führt, dass Tests nicht im Fokus des Entwicklers stehen und weniger effektiv sind.
Wie tragen Unit-Tests zur Qualitätssicherung in der Softwareentwicklung bei?
Unit-Tests ermöglichen eine kontinuierliche Überprüfung der Codequalität, verhindern Regressionen und dienen als Dokumentation der erwarteten Funktionsweise des Codes. Sie sind ein wesentliches Werkzeug für die Qualitätssicherung.