Probieren ist gut, testen ist besser. In der Regel weiss man, was ein Programm tun soll bevor man es schreibt. Warum nicht gleich die Bedingungen nach denen es funktionieren soll in Code fassen, der überprüft ob die Vorgaben auch erfüllt werden?

Um dies zu tun gibt es eine Reihe spezialisierter Frameworks die das auf verschiedene Weisen sicher stellen. In diesem Workshop wollen wir uns auf das Unit Testing mit JUnit konzentrieren. Unter Unit Tests versteht man Tests die kleine abgeschlossene Code-Einheiten, wie z.B. Klassen oder Methoden auf korrekte Funktionalität prüfen.

Grundkenntnisse der Objektorientierten Programmierung in Java und der Eclipse IDE werden vorausgesetzt. Der Kurs "Java für Einsteiger" sowie der "Workshop Einführung in eine Java- Programmierumgebung (IDE)", stehen im openHPI-Archiv zur Auffrischung der Java Grundkenntnisse zur Verfügung.

Selbststudium
Kurssprache: Deutsch
Advanced, Expert, Programming

Kursinformationen

Probieren ist gut, testen ist besser. In der Regel weiss man, was ein Programm tun soll bevor man es schreibt. Warum nicht gleich die Bedingungen nach denen es funktionieren soll in Code fassen, der überprüft ob die Vorgaben auch erfüllt werden?

Um dies zu tun gibt es eine Reihe spezialisierter Frameworks die das auf verschiedene Weisen sicher stellen. In diesem Workshop wollen wir uns auf das Unit Testing mit JUnit konzentrieren. Unter Unit Tests versteht man Tests die kleine abgeschlossene Code-Einheiten, wie z.B. Klassen oder Methoden auf korrekte Funktionalität prüfen.

Grundkenntnisse der Objektorientierten Programmierung in Java und der Eclipse IDE werden vorausgesetzt. Der Kurs "Java für Einsteiger" sowie der "Workshop Einführung in eine Java- Programmierumgebung (IDE)", stehen im openHPI-Archiv zur Auffrischung der Java Grundkenntnisse zur Verfügung.

Lernmaterial

  • Woche 1:

    Was ist der Unterschied zwischen Ausprobieren und Testen? Wie unterscheiden sich verschiedene Test Typen und Test Level? Was testet man und wo ist der Aufwand im Vergleich zum Gewinn zu hoch? Welche Frameworks gibt es und wofür werden sie benutzt? Welche Mechanismen und Konzepte bietet das JUnit Framework? Wie schreibe ich einfache Tests mit und ohne Unterstützung eines Frameworks? Wie binde ich meine Tests in ein Software-Projekt ein?
  • Woche 2:

    Warum reicht ein Test pro Funktion meist nicht aus? Was sind Grenzfälle? Welche Hilfsmittel gibt es um Tests "lesbarer" zu gestalten? Was ist zu beachten wenn mein Projekt Daten z.B. aus einer Datenbank oder einem Web-Service benutzt? Wozu braucht man Test-Doubles? Worin unterscheiden sich Fixtures, Mocks, Stubs und Dummies? Was ist Testabdeckung?
  • Peer Assessment:

    Testgetriebene Entwicklung eines Moduls des Breakout Spiels
  • Abschlussprüfung

  • Feedback:

    Umfrage und I like, I wish

Für diesen Kurs einschreiben

Der Kurs ist kostenlos. Legen Sie sich einfach ein Benutzerkonto auf openHPI an und nehmen Sie am Kurs teil!
Jetzt einschreiben

Lernende

Aktuell
Heute
5.727
Kursende
1. Juni 2016
2.986
Kursstart
2. Mai 2016
2.412

Anforderungen für Leistungsnachweise

  • Den Leistungsnachweis erhält, wer in der Summe aller benoteten Aufgaben mindestens 50% der Höchstpunktzahl erreicht hat.
  • Die Teilnahmebestätigung erhält, wer auf zumindest 50% der Kursunterlagen zugegriffen hat.

Mehr Informationen finden Sie in den Richtlinien für Leistungsnachweise.

Dieser Kurs wird angeboten von

Ralf Teusner

Ralf Teusner ist PostDoc am Fachgebiet Enterprise Platform and Integration Concepts unter der Leitung von Professor Dr. h.c. Hasso Plattner am Hasso-Plattner-Institut der Universität Potsdam. Seine Forschungsinteressen liegen im Bereich eLearning und MOOCs. Insbesondere das Erlernen von neuen Programmiersprachen und Konzepten sowie die Potentiale und Auswirkungen von Interaktion zwischen den Lernenden sind im besonderen Fokus.

Thomas Staubitz

Thomas Staubitz ist Wissenschaftlicher Mitarbeiter und Doktorand am Lehrstuhl Internet-Technologien und -Systeme unter der Leitung von Professor Dr. Christoph Meinel am Hasso-Plattner-Institut der Universität Potsdam. Seine Forschungsinteressen liegen im Bereich eLearning und MOOCs. Ein besonderer Schwerpunkt liegt auf der Zusammenarbeit und Interaktion unter den Kursteilnehmern, sowie Tools zur Leistungserfassung jenseits der klassischen Multiple-Choice Aufgaben.