Unit-Testing Flashcards
1
Q
Was versteht man unter Unit-Testing?
A
- Programme auf Korrektheit und Funktionalität prüfen
- alle möglichen Zustände, Eingaben und Ausgaben werden überprüft
2
Q
Wie funktioniert Unit-Testing?
A
- unit = Einheiten; Teile
- jede Teilfunktion wird geprüft
- Funktionen separieren und einzeln testen -> effizient
- Funktionen werden anhand von mehreren geschriebenen Testfällen getestet (alle möglichen Ausgaben und Erwartungen)
- Auswertung von bestandenen Testen
3
Q
Wofür benutzt man Unit-Testing?
A
- frühzeitig Fehler finden
- Funktionalität und Korrektheit garantieren
- Dokumentation
- ohne Tests = ganzen Code nach Fehlern absuchen (bei komplexeren Programmen sehr aufwendig)
4
Q
Was macht eine Testumgebung?
A
- beschreibt Testfälle
- erzeugt Testprogramm zur Ausführung der Testfälle
- liefert Bericht über Testergebnisse
5
Q
Wie geht man vor? (Test Driven Development)
A
- Testumgebung am Anfang der Programmierung
- Tests werden vor der Implementierung definiert
- während Programmierung wird ständig geprüft, ob alle Tests bestanden werden
6
Q
Welche Probleme bleiben?
A
- Test garantiert keine vollständige Korrektheit
- schwierig gute Testfälle zu entwickeln
- Tests müssen spezifiziert werden oder sogar darüber hinaus
7
Q
Welche Ausgänge kann ein Test haben?
A
- succes
- nonfatal failure
- fatal failure
8
Q
Wie genau wird eine Funktion getestet?
A
- assertions (Behauptungen) bezüglich ihres Verhalten werden geprüft
- ASSERT_*
- EXPECT_*
- wenn ein ASSERT_* fehlschlägt, wird ein fataler Fehler erzeugt und der Test abgebrochen
- wenn ein EXPECT_* fehlschlägt, wird ein nicht fataler Fehler erzeugt und der Test fortgesetzt
- bevorzugt werden EXPECT-Statements
- ASSERT-Statements, falls Fortführen des Tests keinen Sinn macht
9
Q
Was ist eine Makefile?
A
- enthält Anleitung zum Aufruf des Compilers
- Kommando make erzeugt das Programm
10
Q
Was ist cmake?
A
- Programm
- unterstützt eine Build-Umgebung bzw. Makefile zu erstellen
- Build-Umgebung vereinfacht Compilier-Vorgang
11
Q
Was ist make?
A
-Programm
-Kompilieren von Quellcode steuern
-verarbeitet die in der Datei makefile gespeicherten
Schritte
-nach jeder Änderung im Code muss neu kompiliert, also make aufgerufen werden
12
Q
Was sind gute Testfälle?
A
- einige Tests zufällig definieren
- Randfälle betrachten (z.B. größte und kleinte Werte, Ränder von Feldern, positive und negative Werte etc.)
- verschiedene Verzweigungen der Funktionen testen (z.B. Schleife 0 mal, 1 mal, n-mal durchlaufen; unterschiedliche Bedingungen testen für switch, if z.B.)