Schulung Unit Testing / Testgetriebene Entwicklung / Test Driven Development (TDD) von Java-Anwendungen mit JUnit und Co

Beschreibung/Inhalt

Dieses Schulungsmodul kann mit allen aktuellen Java-Versionen (z.B. 21, 20, 19, 18) entsprechend Ihren Wünschen durchgeführt werden.
Dieses Schulungsmodul kann mit allen aktuellen Java Enterprise Edition-Versionen (z.B. 9, 8, 7, 6) entsprechend Ihren Wünschen durchgeführt werden.

# Konzepte

  • Motivation für Unit Tests
  • Grundkonzept Unit Testing
  • Unittest vs. Integrationstest
  • White-Box-Test vs. Black-Box-Test
  • Unit Testing versus Test Driven Development (TDD)
  • Testfallfindung / User-Stories als Dreh- und Angelpunkt zur Testfallfindung
  • Testmethodik und Testerstellung
  • Der Zusammenhang von Refactoring und Testen
  • Ermitteln der Testqualität durch Code-Coverage
  • Anwendung von Stellvertreterobjekten (Dummy & Mock)
  • Testdatenerstellung und -pflege
  • Grenz- und Extremwerte
  • Äquivalenzklassen
  • Abgrenzung und Zusammenspiel von Unit Tests mit Integrations- und Systemtests
  • Anwendung von TDD-Praktiken


  • # Testarten
  • Unit Tests
  • Integrationstests
  • Oberflächentests
  • Datenbanktests
  • HTTP-Tests (Web-UI und/oder Web-APIs)


  • # Überblick über die Werkzeuge für Unit Testing und TDD
  • Unit-Test-Frameworks
  • Unit-Test-Runner
  • Werkzeuge für Code Coverage
  • Mock-Objekt-Hilfsbibliotheken


  • # Testing in der Praxis
  • Testautomatisierung mit Werkzeugen (Werkzeuge nach Kundenwunsch/Vereinbarung)
  • Erstellen einer Testumgebung
  • Testgetriebenes Design
  • Entwicklung von testbarem Code ("Design for Testability": Verwendung von Abstraktion, Schichten, Pattern)
  • Ermitteln der Testqualität durch Code-Coverage und Fehlerinjektion
  • Mocking: Anwendung von Stellvertreter-Objekten (Dummy-Objekte) und die Gefahren dabei
  • Das Prinzip von Integration von in Continuous Integration (CD) und Continuous Delivery/Deployment


  • # Das Testwerkzeug JUnit
  • Funktionsweise von JUnit
  • Erstellen einer Testumgebung
  • Entwicklung von testbarem Code (Verwendung von Abstraktion, Schichten, Pattern)
  • Der Zusammenhang von Refactoring und Testen
  • Ermitteln der Testqualität durch Code-Coverage und Fehlerinjektion
  • Ermitteln der Testqualität durch Code-Coverage und Fehlerinjektion
  • Testdatenerstellung und -pflege
  • Testfallfindung
  • Grenz- und Extremwerte
  • Äquivalenzklassen
  • Abgrenzung und Zusammenspiel mit Integrations- und Systemtests


  • # Mocking
  • Funktionsweise von Mock-Werkzeugen
  • Anwendung von Stellvertreter-Objekten (Dummy vs. Stub vs. Spy vs. Fake vs. Mock)
  • Ausgewählte Mock-Werkzeuge (Easy-Mock, JMock, Mockito)


  • # Persistenz / Datenbanken
  • Testen von persistenten Daten
  • Mock vs. InMemoryDB


  • # Testen im Web
  • Black-Box-Testen von APIs
  • UI-Tests mit Selenium Web Driver API


  • # Aufbauwissen
  • Testen spezieller Anwendungen (GUI, Web, EJB)
  • Das FIT-Framework
  • Test und Refactoring
  • Kritierien für schlechten Code


  • # Integration im CI/CD Prozess
  • Integration mit Maven
  • CI mit Jenkins
  • Messung und Reporting (z.B. SonarQube)


  • # Praxis
  • Ausführliche testgetriebene Entwicklung einer nicht trivialen Beispiel-Anwendung


  • # Optional:
    Unit Testing-Praxis mit IntellJ
  • Erstellen von Tests
  • Ausführung von Tests

  • Dauer
    Auf Wunsch. Gerne geben wir Ihnen eine Empfehlung zur notwendigen Schulungsdauer, wenn Sie uns in der Anfrage Ihre Vorkenntnisse und Ziele nennen.
    Ort
    Online oder in Deutschland, Österreich und der Schweiz an Ihrem Firmensitz
    Schulungsdidaktik
    Nach Ihrer Wahl: Klassische Schulung mit PC-Übungen, reine Präsentation ohne PC-Übungen oder interaktiver Workshop mit Beratungsanteil