Eine große Testmenge ist nicht automatisch eine gute Teststrategie. Wert entsteht, wenn Tests konkrete Risiken abdecken, schnelle Rückmeldung liefern und in reproduzierbaren Umgebungen stabil bleiben.
Der Kurs ordnet NestJS-spezifische Testwerkzeuge in eine risikobasierte Testarchitektur ein. Fachlogik, Dependency Injection, Datenbankzugriff, Sicherheitsgrenzen und HTTP-Verträge werden auf unterschiedlichen Ebenen geprüft.
Inhaltsübersicht
- Lernziele
- Teststrategie und Testpyramide
- Unit- und Modultests mit TestingModule
- Integrationstests für Datenbank und Infrastruktur
- End-to-End- und Contract-Tests
- Stabilität und CI-Integration
- Praxisprojekt: Testarchitektur für eine geschützte API
- Prüfpunkte und typische Fehler
Lernziele
- Risiken, Testebenen und Verantwortlichkeiten in einer Testmatrix zuordnen.
- Provider, Pipes, Guards, Interceptors und Controller mit dem TestingModule prüfen.
- Datenbank- und Infrastrukturtests mit realen Abhängigkeiten reproduzierbar ausführen.
- End-to-End-Tests für vollständige HTTP- und Authentifizierungsabläufe implementieren.
- Contract-Tests für OpenAPI, Nachrichten und externe Schnittstellen ergänzen.
- Testdaten, Parallelität, Flakiness, Abdeckung und CI-Gates kontrollieren.
Teststrategie und Testpyramide
Die Teststrategie beginnt mit Fehlerauswirkungen und Änderungswahrscheinlichkeit. Daraus folgt, welche Regeln isoliert, welche Integrationen real und welche Nutzerabläufe vollständig geprüft werden.
- Fachregeln, API-Verträge, Sicherheitsgrenzen, Datenintegrität und Betriebsrisiken inventarisieren.
- Unit-, Modul-, Integrations-, Contract- und End-to-End-Tests klar abgrenzen.
- Schnelle Tests häufig und teure Systemtests gezielt ausführen.
- Testfälle nach beobachtbarem Verhalten strukturieren.
- Fehlerszenarien und negative Pfade gleichwertig zu Erfolgsfällen behandeln.
- Abdeckung als Hinweis und nicht als alleinige Qualitätskennzahl verwenden.
Entscheidungskriterien und Hinweise
- Jede Testebene besitzt eine eindeutige Aussage und vermeidet unnötige Duplikation.
- Kritische fachliche Risiken erhalten mehrere komplementäre Prüfungen.
Unit- und Modultests mit TestingModule
NestJS-Komposition wird in kleinen Testmodulen aufgebaut. Abhängigkeiten werden nur dort ersetzt, wo die Testaussage sonst unkontrollierbar wäre.
- Provider mit realistischen Eingaben und expliziten Abhängigkeits-Tokens konfigurieren.
- Repository- oder Client-Abhängigkeit durch fokussiertes Test Double ersetzen.
- Erfolgs-, Validierungs-, Konflikt- und Fehlerpfade des Fachservices prüfen.
- Pipes und Guards mit repräsentativem Execution Context testen.
- Controller auf Transportmapping und delegiertes Verhalten prüfen.
- Interceptors und Exception Filter anhand ihres externen Vertrags testen.
- Testfabriken ohne versteckte globale Zustände aufbauen.
Entscheidungskriterien und Hinweise
- Mocks bilden nur die für den Test notwendige Schnittstelle ab.
- Controller-Tests wiederholen nicht vollständig die Fachservice-Tests.
Integrationstests für Datenbank und Infrastruktur
Mocks können SQL, Migrationen, Constraints oder Transaktionsfehler nicht zuverlässig abbilden. Für diese Risiken wird eine reale, isolierte Testabhängigkeit verwendet.
- Testdatenbank mit derselben Hauptversion und denselben Migrationen wie die Zielumgebung starten.
- Schema pro Testlauf reproduzierbar aufbauen und Versionsstand prüfen.
- Constraints, Transaktionen, Konkurrenz und Fehlerübersetzung testen.
- Deterministische Testdatenfabriken mit fachlich gültigen Standardwerten verwenden.
- Isolation durch Rollback, Schema oder getrennte Datenbankinstanzen sicherstellen.
- Externe Adapter mit kontrollierten Gegenstellen oder Protokollsimulationen testen.
Entscheidungskriterien und Hinweise
- Datenbanktests laufen gegen reale Migrationen und nicht gegen ein abweichendes Testschema.
- Testdaten sind minimal, verständlich und unabhängig.
End-to-End- und Contract-Tests
End-to-End-Tests starten die reale Anwendung und prüfen vollständige HTTP-Abläufe. Die Zahl bleibt begrenzt; ausgewählt werden kritische Nutzerpfade und Integrationsrisiken.
- Anwendung mit Testkonfiguration und realer Datenbank initialisieren.
- Testidentitäten, Mandanten und Ausgangsdaten kontrolliert erzeugen.
- Erfolgsablauf über mehrere Requests und Zustandsänderungen prüfen.
- Validierung, Authentifizierung, Autorisierung und Konfliktfälle testen.
- Statuscodes, Header, Antwortschemata und Fehlervertrag verifizieren.
- OpenAPI-Schema und repräsentative Antworten auf Kompatibilität prüfen.
- Nach jedem Test Datenzustand und unerwartete Seiteneffekte kontrollieren.
Entscheidungskriterien und Hinweise
- Negative Sicherheitsfälle prüfen Datenabfluss und Seiteneffekte.
- Contract-Tests schützen den externen Vertrag, nicht interne Implementierungsdetails.
Stabilität und CI-Integration
Flaky Tests untergraben Vertrauen. Ursachen liegen meist in Zeit, Zufall, gemeinsamem Zustand, externen Abhängigkeiten oder unkontrollierter Parallelität.
- Zeit und Zufall injizierbar machen und feste Testwerte verwenden.
- Asynchrone Operationen vollständig erwarten und offene Handles erkennen.
- Parallelität nur bei nachgewiesener Datenisolation aktivieren.
- Fehlerhafte Tests nicht pauschal wiederholen, sondern Ursache sichtbar machen.
- Pipeline in schnelle Prüfungen, Integration und End-to-End-Stufen gliedern.
- Testberichte, Logs und relevante Artefakte bei Fehlern sichern.
- Release-Gates für Build, Typprüfung, Migration, Sicherheit und Verträge definieren.
Entscheidungskriterien und Hinweise
- Automatische Wiederholung ist höchstens Diagnosehilfe und keine dauerhafte Lösung.
- Pipeline-Gates sind schnell genug für regelmäßige Ausführung und streng genug für Freigaben.
Praxisprojekt: Testarchitektur für eine geschützte API
Eine bestehende API besitzt Fachservice, Datenzugriff, Authentifizierung und mehrere HTTP-Abläufe. Die Ausgangstests sind langsam, stark gemockt und teilweise instabil.
Die Tests werden nach Risiko und Ebene neu geordnet. Reale Datenbankmigrationen, negative Berechtigungsfälle und ein vollständiger Kernablauf bilden den Abnahmeprüfpfad.
- Risiken erfassen und Testmatrix für Fachlogik, Datenbank, Sicherheit und API-Vertrag erstellen.
- Unit-Tests für Fachservice und Policy-Entscheidungen aufbauen.
- Modultests für Pipes, Guards und Fehlerfilter ergänzen.
- Reale Testdatenbank migrieren und Repository-Integration prüfen.
- End-to-End-Tests für Kernablauf und verweigerte Zugriffe implementieren.
- OpenAPI- und Antwortverträge automatisiert vergleichen.
- Flaky Test analysieren und Zeit- oder Zustandsabhängigkeit beseitigen.
- Teststufen und Qualitäts-Gates in einer CI-Pipeline ordnen.
Prüfpunkte und typische Fehler
- Mocks werden nur für klar kontrollierte Grenzen verwendet.
- Tests prüfen beobachtbares Verhalten.
- Datenbanktests führen reale Migrationen und Constraints aus.
- End-to-End-Tests decken negative Sicherheits- und Validierungsfälle ab.
- Parallelität wird erst nach gesicherter Isolation aktiviert.
- Flaky Tests werden analysiert und nicht dauerhaft kaschiert.
Fachbereichsleitung und Trainerteam
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 2 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weiterer Tag 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 1.198 zzgl. MwSt. Inhaus: € 3.400 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | NestJS- und TypeScript-Entwickler, Testautomatisierer, QA-Verantwortliche und technische Teamleitungen |
| Voraussetzungen: | Praktische NestJS- und TypeScript-Erfahrung, Kenntnisse zu REST, Datenbanken und grundlegenden Testprinzipien |
| Standorte: | Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg |
| Methoden: | Fachvortrag, Live-Coding, Demonstrationen, praktische Übungen und strukturierte Auswertung am System |
| Seminararten: | Öffentlich, Webinar, Inhouse, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht |
| Durchführungsgarantie: | ja, ab 2 Teilnehmern |
| Sprache: | Deutsch - bei Firmenseminaren ist auch Englisch möglich |
| Seminarunterlage: | Dokumentation auf Datenträger oder als Download |
| Teilnahmezertifikat: | ja, selbstverständlich |
| Verpflegung: | Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch) |
| Support: | 3 Anrufe im Seminarpreis enthalten |
| Barrierefreier Zugang: | an den meisten Standorten verfügbar |
| Weitere Informationen unter + 49 (221) 74740055 |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
