- Einführung in das Testen
- Statische Testverfahren
- Dynamische Testverfahren
- Whitebox-Testing
- Blackbox-Testing
- Testfunktionen
- Testumgebung
- Unit test
- assert-Tracebacks erweitern
- pytest.fail() und Exceptions
- Testfunktionen strukturieren
- Testklassen
- Teilmengen testen
- pytest-Fixtures
- setup und teardown
- Fixture-Ausführung verfolgen
- Datenbank setup and teardown
- Auflisten der verfügbaren Fixtures, ihr Umfang und wo sie definiert sind
- Teilen von Fixtures zwischen Testmodulen oder Verzeichnissen
- Built-in Fixtures
- Mehrere Fixtures in einem Test
- pytest-Parametrisierung
- Parametrisierungsfunktionen mit einem und zwei Parametern
- Fixture-Parametrisierung
- Keywords zur Auswahl von Testklassen
- IDs für Parameter-Objekte
- pytest-Markers
- Überspringen von Testfunktionen
- Wann Tests fehlschlagen sollen
- Eigene Marker
- Ausführlicher zusammenfassender Bericht
- pytest-Plugins
- Einführung
- Einige gebräucliche Plugins
- pytest-Konfiguration
- Debugging
- Blackbox-Tests
- Statische Testverfahren
- Style Guide überprüfen
- Erkennen und Vermeiden von Sicherheitsproblemen in Python-Code
- Komplexität von Python-Code messen
- Zusammenfassung und Rückblick
LernzieleFolgende Fähigkeiten werden Teilnehmende nach dem Semianr erlangen:
- Saubere, lesbare und gut strukturierte Testfunktionen erstellen
- Fixtures verwenden, um Setup-, Teardown- und Testdaten zu speichern
- Fixtures zwischen Tests und zwischen Testdateien austauschen
- Verfolgen der Testausführung durch Tests und Fixtures, um Tests zu debuggen
- Verwenden von Testparametrisierung, um mit einer geringen Anzahl von Testfunktionen eine Vielzahl von Testfällen zu erstellen
- Identifizieren von Testparametrisierungen mit Test-IDs
- Überspringen von Tests mit Markierungen
- Teilmengen von Tests ausführen mithilfe von Schlüsselwörtern, Markierungen, Testklassen und Kombinationen dieser Techniken
- Erweitern der Pytest-Funktionalität mit Plugins
- Hypothesen testen
- Statische Code-Analysen
ZielgruppenDieses Seminar richtet sich an alle, die Python-Code oder alles, was über Python-Code erreichbar ist, testen müssen: APIs, Web-Services, eingebettete Systeme, Hardware und natürlich Python-Pakete, -Anwendungen und -Werkzeuge.
Dieses Seminar ist für Software-Ingenieure aller Fachrichtungen nützlich, auch für Test-Ingenieure. Erfahrung mit Softwaretests ist nicht erforderlich. Erfahrung in der Programmierung mit Python wäre jedoch hilfreich.