Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten...

66

Transcript of Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten...

Page 1: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Testen und Testkonzept

Dipl.-Inf. (FH) Christopher Olbertz

2. Dezember 2014

Page 2: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Testen und Testkonzept

Warum testen?

Wichtig, obwohl bei Programmierern unbeliebt

Stellt weitgehend korrekte Funktionsweise eines Programmssicher

Verhindert teure Nachbesserungen

Am besten nach jedem Übersetzen das gesamte Programmtesten

Frage?

Wer hat sich schon alles über Programmfehler oderProgrammabstürze geärgert?

Page 3: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Testen und Testkonzept

Warum testen?

Wichtig, obwohl bei Programmierern unbeliebt

Stellt weitgehend korrekte Funktionsweise eines Programmssicher

Verhindert teure Nachbesserungen

Am besten nach jedem Übersetzen das gesamte Programmtesten

Frage?

Wer hat sich schon alles über Programmfehler oderProgrammabstürze geärgert?

Page 4: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Testen und Testkonzept

Ausreden

Ich habe keine Zeit!

Testen ist stupide und langweilig!

Mein Code ist praktisch fehlerfrei!

Mein Code ist gut genug!

Aber

Fehler sind nun einmal menschlich und lassen sich beimProgrammieren nicht vermeiden!

Page 5: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Testen und Testkonzept

Ausreden

Ich habe keine Zeit!

Testen ist stupide und langweilig!

Mein Code ist praktisch fehlerfrei!

Mein Code ist gut genug!

Aber

Fehler sind nun einmal menschlich und lassen sich beimProgrammieren nicht vermeiden!

Page 6: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Testen und Testkonzept

Testkonzept

Hilfsmittel zum strukturierten Testen

Checkliste zum Testen

Gedächtnisstütze, damit keine Testfälle vergessen werden

Hilfsmittel, damit immer mit denselben Testfällen getestet wird

Erzeugung von wiederholbaren Tests

Testkonzept wird nicht nach Fertigstellung des Programmsgeschrieben, sondern begleitet den Entwicklungsprozess

Page 7: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Testen und Testkonzept

Testkonzept

Page 8: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Testen und Testkonzept

Wichtige Daten eines Testkonzepts

Beschreibung des Testfalls

Konkrete Testdaten

Welches Ergebnis wird erwartet?

Welches Ergebnis hat man tatsächlich erhalten?

JUnit

JUnit kann ein Testkonzept erweitern oder sogar ersetzen!

Page 9: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Testen und Testkonzept

Wichtige Daten eines Testkonzepts

Beschreibung des Testfalls

Konkrete Testdaten

Welches Ergebnis wird erwartet?

Welches Ergebnis hat man tatsächlich erhalten?

JUnit

JUnit kann ein Testkonzept erweitern oder sogar ersetzen!

Page 10: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Dipl.-Inf. (FH) Christopher Olbertz

2. Dezember 2014

Page 11: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

JUnit

Kleines Framework zum automatischen Testen vonJava-Klassen

Testfälle sind selbstüberprüfend und damit wiederholbar

Tests werden immer mit denselben Daten durchgeführt

Tests können ganz einfach durch einen Klick gestartet werden

Es gibt zahlreiche Erweiterungs-Frameworks für JUnit (z.B.DBUnit)

Ähnliche Frameworks existieren für andere Sprachen

Page 12: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Vorgehensweise

1 Klassen und Methoden festlegen (z.B. UML)2 Klassen und Methoden so weit anlegen, dass Übersetzen

möglich ist (ohne Logik)3 API-Dokumentation schreiben4 Wenn sich die Klasse nicht �richtig anfühlt�, wird sie ab Schritt

1 noch mal geändert5 Eine Testklasse implementieren6 Logik der Methoden implementieren7 Wenn sich durch die Implementierung neuer zu testender Code

ergeben hat, werden die Testfälle erweitert8 Tests durchführen und Fehler beheben

Page 13: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Prototypen und API-Dokumentation

Page 14: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testfall 1

Testfallbeschreibung: Berechnung der ISBN-Prüfzi�er

Testdaten: 386680192

Erwartetes Ergebnis: 0

Page 15: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testfall 1

Testfallbeschreibung: Berechnung der ISBN-Prüfzi�er

Testdaten: 386680192

Erwartetes Ergebnis: 0

Page 16: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testfall 2

Testfallbeschreibung: Berechnung der ISBN-Prüfzi�er

Testdaten: 383622862

Erwartetes Ergebnis: 9

Page 17: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testfall 2

Testfallbeschreibung: Berechnung der ISBN-Prüfzi�er

Testdaten: 383622862

Erwartetes Ergebnis: 9

Page 18: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testfall 3

Testfallbeschreibung: Berechnung der ISBN-Prüfzi�er

Testdaten: 345343577

Erwartetes Ergebnis: X

Page 19: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testfall 3

Testfallbeschreibung: Berechnung der ISBN-Prüfzi�er

Testdaten: 345343577

Erwartetes Ergebnis: X

Page 20: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Was fehlt noch?

Was wir getestet haben

Die Fälle, dass die Methoden richtig durchlaufen wurden getestet

Was wir nicht getestet haben

Die Fälle, dass die Methoden falsche Eingaben erhalten, wurdennoch nicht getestet

Was erwarten wir?

Wir erwarten, dass bestimmte Exceptions geworfen werden.

Page 21: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Was fehlt noch?

Was wir getestet haben

Die Fälle, dass die Methoden richtig durchlaufen wurden getestet

Was wir nicht getestet haben

Die Fälle, dass die Methoden falsche Eingaben erhalten, wurdennoch nicht getestet

Was erwarten wir?

Wir erwarten, dass bestimmte Exceptions geworfen werden.

Page 22: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Was fehlt noch?

Was wir getestet haben

Die Fälle, dass die Methoden richtig durchlaufen wurden getestet

Was wir nicht getestet haben

Die Fälle, dass die Methoden falsche Eingaben erhalten, wurdennoch nicht getestet

Was erwarten wir?

Wir erwarten, dass bestimmte Exceptions geworfen werden.

Page 23: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testfall 4

Testfallbeschreibung: Eingabe einer zu kurzen ISBN

Testdaten: 34534

Erwartetes Ergebnis: IllegalArgumentException

Page 24: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testfall 4

Testfallbeschreibung: Eingabe einer zu kurzen ISBN

Testdaten: 34534

Erwartetes Ergebnis: IllegalArgumentException

Page 25: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testfall 5

Testfallbeschreibung: Eingabe einer zu langen ISBN

Testdaten: 345347451211

Erwartetes Ergebnis: IllegalArgumentException

Page 26: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testfall 5

Testfallbeschreibung: Eingabe einer zu langen ISBN

Testdaten: 345347451211

Erwartetes Ergebnis: IllegalArgumentException

Page 27: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testen der Berechnung der Teilersumme

Testfallbeschreibung: Eingabe einer Zahl, von der dieTeilersumme berechnet werden kann

Testdaten: 6

Erwartetes Ergebnis: 12

Page 28: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testen der Berechnung der Teilersumme

Testfallbeschreibung: Eingabe einer Zahl, von der dieTeilersumme berechnet werden kann

Testdaten: 6

Erwartetes Ergebnis: 12

Page 29: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testen der Berechnung der Teilersumme

Testfallbeschreibung: Eingabe einer Zahl, von der dieTeilersumme berechnet werden kann

Testdaten: 25

Erwartetes Ergebnis: 31

Page 30: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testen der Berechnung der Teilersumme

Testfallbeschreibung: Eingabe einer Zahl, von der dieTeilersumme berechnet werden kann

Testdaten: 25

Erwartetes Ergebnis: 31

Page 31: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testen der Berechnung der Teilersumme

Testfallbeschreibung: Eingabe einer Zahl kleiner oder gleich 0

Testdaten: -1

Erwartetes Ergebnis: IllegalArgumentException

Page 32: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Testen der Berechnung der Teilersumme

Testfallbeschreibung: Eingabe einer Zahl kleiner oder gleich 0

Testdaten: -1

Erwartetes Ergebnis: IllegalArgumentException

Page 33: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Ausführen der Tests

Page 34: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Ausführen der Tests - einige korrekte Tests

Page 35: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit

Ausführen der Tests - alle Tests korrekt

Page 36: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

JUnit in BlueJ

Dipl.-Inf. (FH) Christopher Olbertz

2. Dezember 2014

Page 37: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

JUnit in BlueJ

Testwerkzeuge wurden richtig aktiviert

Page 38: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

JUnit in BlueJ

Erzeugen einer Testklasse

Page 39: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

JUnit in BlueJ

Vorgehensweise beim Erzeugen eines Testfalls

1 Testmethode erzeugen (Rechtsklick auf Testklasse)2 Testmethode benennen3 Aktionen durchführen, die in den Testfall aufgenommen

werden sollen4 Aufzeichnung beenden5 Eventuell den automatisch erzeugten Code von Hand ändern

Page 40: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

JUnit in BlueJ

Testmethode erzeugen

Page 41: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

JUnit in BlueJ

Testmethode benennen

Testmethoden dürfen bei JUnit 4 beliebige Namen tragen

Sie sollten allerdings idealerweise mit dem Prä�x �test� oder�teste� beginnen

Auch hier gilt: sprechende Namen

Aus dem Namen sollte erkennbar sein, was getestet wird

Page 42: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

JUnit in BlueJ

Testfall aufzeichnen

Wie gewohnt mit BlueJ arbeiten

Alle Aktionen werden aufgezeichnet und in den Testfallaufgenommen

Pro Testmethode sollte nur ein Testfall geprüft werden

Testmethode muss mindestens einen Methodenaufrufenthalten, der einen Wert zurückgibt.

Page 43: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

JUnit in BlueJ

Methodenergebnis auswerten

Wenn eine Methode mit Rückgabewert aufgerufen wird, wirdunten angezeigtes Fenster geö�net

Hier muss angegeben werden, welche Testwerte erwartetwerden.

Page 44: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

JUnit in BlueJ

Beenden der Aufzeichnung

Hiermit wird der Testfall abgeschlossen

Alle weiteren Aktionen werden nicht mehr aufgezeichnet

Page 45: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

JUnit in BlueJ

Starten und Auswerten der Tests

Page 46: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

JUnit in BlueJ

Vorde�nieren eines Initialisierungszustands

1 Objekte erstellen wie gewohnt2 Objekte speichern3 Objektzustand wird beim Start eines Tests wiederhergestellt

Page 47: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

JUnit in BlueJ

Objekte speichern

Page 48: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

JUnit in BlueJ

Prüfen, ob die richtigen Exceptions geworfen werden

Erste Möglichkeit Zweite Möglichkeit

Page 49: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Dipl.-Inf. (FH) Christopher Olbertz

2. Dezember 2014

Page 50: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Compilezeitzeit- und Laufzeitfehler

Was ist ein Compilezeitfehler?

Fehler, die der Javacompiler �nden kann

z.B. Syntaxfehler

Es gibt Möglichkeiten, aus potentiellen LaufzeitfehlernCompilezeitzeit zu machen

Was ist ein Laufzeitfehler?

Tauchen auf, während das Programm läuft

Kann der Compiler nicht �nden

Hilfe: Debugger

Page 51: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Compilezeitzeit- und Laufzeitfehler

Was ist ein Compilezeitfehler?

Fehler, die der Javacompiler �nden kann

z.B. Syntaxfehler

Es gibt Möglichkeiten, aus potentiellen LaufzeitfehlernCompilezeitzeit zu machen

Was ist ein Laufzeitfehler?

Tauchen auf, während das Programm läuft

Kann der Compiler nicht �nden

Hilfe: Debugger

Page 52: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Compilezeitzeit- und Laufzeitfehler

Was ist ein Compilezeitfehler?

Fehler, die der Javacompiler �nden kann

z.B. Syntaxfehler

Es gibt Möglichkeiten, aus potentiellen LaufzeitfehlernCompilezeitzeit zu machen

Was ist ein Laufzeitfehler?

Tauchen auf, während das Programm läuft

Kann der Compiler nicht �nden

Hilfe: Debugger

Page 53: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Was ist ein Debugger?

Software, die bei der Suche nach Laufzeitfehlern unterstützt

Ermöglicht Anhalten des Programms durch Haltepunkte

Ermöglicht schrittweise Abarbeitung des Programms

Ermöglicht Analyse des Programmzustandes

Was bringt mir das?

Aus gewonnenen Informationen kann man auf Fehler schlieÿen.

Page 54: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Was ist ein Debugger?

Software, die bei der Suche nach Laufzeitfehlern unterstützt

Ermöglicht Anhalten des Programms durch Haltepunkte

Ermöglicht schrittweise Abarbeitung des Programms

Ermöglicht Analyse des Programmzustandes

Was bringt mir das?

Aus gewonnenen Informationen kann man auf Fehler schlieÿen.

Page 55: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Ausgangspunkt

Page 56: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Der fehlerhafte Test

Page 57: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Wer sieht den Fehler auf Anhieb?

Page 58: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Wir setzen einen Haltepunkt

Page 59: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Das Debuggerfenster

Page 60: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Die Schalt�ächen

Step: Springt eine Anweisung weiter, überspringt dabeiMethoden

Step into: Springt eine Anweisung weiter und springt inMethoden

Continue: Programm läuft normal weiter

Terminate: Programm wird abgebrochen

Page 61: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Einige Fragen

Kann man sicherstellen, dass ein Programm richtig ist?

Man kann die vollständige Korrektheit eines Programms nichtbeweisen

Man kann beweisen, dass ein Programm fehlerhaft ist

Man �ndet immer Fälle, die Fehler verursachen

Page 62: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Einige Fragen

Kann man sicherstellen, dass ein Programm richtig ist?

Man kann die vollständige Korrektheit eines Programms nichtbeweisen

Man kann beweisen, dass ein Programm fehlerhaft ist

Man �ndet immer Fälle, die Fehler verursachen

Page 63: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Einige Fragen

Wie kann ich heraus�nden, wo ein Fehler verursacht wird?

Es gibt keine einfache Antwort auf diese Frage

Haltepunkt setzen und eine fehlerhafte Ausführung starten

Untersuchen wie jede Anweisung die relevanten Variablenverändert

Heraus�nden, welche Anweisung die fehlerhafte Veränderungverursacht

Fehler vor dem Debuggen so weit wie möglich eingrenzen (z.B.auf eine Methode)

Page 64: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Einige Fragen

Wie kann ich heraus�nden, wo ein Fehler verursacht wird?

Es gibt keine einfache Antwort auf diese Frage

Haltepunkt setzen und eine fehlerhafte Ausführung starten

Untersuchen wie jede Anweisung die relevanten Variablenverändert

Heraus�nden, welche Anweisung die fehlerhafte Veränderungverursacht

Fehler vor dem Debuggen so weit wie möglich eingrenzen (z.B.auf eine Methode)

Page 65: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Einige Fragen

Habe ich Ihnen Debuggen beigebracht?

Ich habe Ihnen beigebracht, wie Sie mit dem Debuggerarbeiten

Ich kann Ihnen nicht beibringen, wie Sie Ihr Programmdebuggen müssen, denn jedes Programm ist anders

Sie müssen die Vorgehensweise verstehen und auf andereFehler übertragen

Gutes Debuggen ist Erfahrungs- und Übungssache

Page 66: Vom estkTonzept zu JUnit -  · estmethoT den dürfen bei JUnit 4 beliebige Namen tragen Sie sollten allerdings idealerweise mit dem Prä x test oder teste beginnen Auch hier gilt:

Vom Testkonzept zu JUnit

Der Debugger

Einige Fragen

Habe ich Ihnen Debuggen beigebracht?

Ich habe Ihnen beigebracht, wie Sie mit dem Debuggerarbeiten

Ich kann Ihnen nicht beibringen, wie Sie Ihr Programmdebuggen müssen, denn jedes Programm ist anders

Sie müssen die Vorgehensweise verstehen und auf andereFehler übertragen

Gutes Debuggen ist Erfahrungs- und Übungssache