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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was macht eine Testumgebung?

A
  • beschreibt Testfälle
  • erzeugt Testprogramm zur Ausführung der Testfälle
  • liefert Bericht über Testergebnisse
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Welche Ausgänge kann ein Test haben?

A
  • succes
  • nonfatal failure
  • fatal failure
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was ist eine Makefile?

A
  • enthält Anleitung zum Aufruf des Compilers

- Kommando make erzeugt das Programm

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was ist cmake?

A
  • Programm
  • unterstützt eine Build-Umgebung bzw. Makefile zu erstellen
  • Build-Umgebung vereinfacht Compilier-Vorgang
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly