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 TestsGrundkonzept Unit Testing Unittest vs. IntegrationstestWhite-Box-Test vs. Black-Box-TestUnit Testing versus Test Driven Development (TDD)Testfallfindung / User-Stories als Dreh- und Angelpunkt zur TestfallfindungTestmethodik und Testerstellung Der Zusammenhang von Refactoring und Testen Ermitteln der Testqualität durch Code-CoverageAnwendung 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 TestsIntegrationstestsOberflächentestsDatenbanktestsHTTP-Tests (Web-UI und/oder Web-APIs)# Überblick über die Werkzeuge für Unit Testing und TDD
Unit-Test-FrameworksUnit-Test-RunnerWerkzeuge für Code CoverageMock-Objekt-Hilfsbibliotheken# Testing in der Praxis
Testautomatisierung mit Werkzeugen (Werkzeuge nach Kundenwunsch/Vereinbarung)Erstellen einer Testumgebung Testgetriebenes DesignEntwicklung 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 dabeiDas Prinzip von Integration von in Continuous Integration (CD) und Continuous Delivery/Deployment# Das Testwerkzeug JUnit
Funktionsweise von JUnitErstellen 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-WerkzeugenAnwendung 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 APIsUI-Tests mit Selenium Web Driver API# Aufbauwissen
Testen spezieller Anwendungen (GUI, Web, EJB)Das FIT-FrameworkTest und RefactoringKritierien für schlechten Code# Integration im CI/CD Prozess
Integration mit MavenCI mit JenkinsMessung und Reporting (z.B. SonarQube)# Praxis
Ausführliche testgetriebene Entwicklung einer nicht trivialen Beispiel-Anwendung# Optional:
Unit Testing-Praxis mit IntellJ
Erstellen von TestsAusführung von Tests