Unit Test, PyTest und doctest Praxiskurs für Python Programmierer
Du willst strukturierte und hochwertige Unit Tests für Deinen Python Code schreiben? Du willst gerne Datenbanken, fremde APIs und fremden Code testen? Du willst schlechte und sinnlose Unit Tests und PyTests auf Anhieb erkennen und anhand von bewährten Patterns in gute Unit Tests umwandeln? Oder Du willst endlich wissen, wie Test-Driven-Development in der Praxis aussieht und wie Du TDD vernünftig einsetzen kannst? Dann brauchst Du nicht weiter zu suchen. Das Python Unit Testing Praxisseminar ist ideal für alle Python-Programmierer, die Unit Test, PyTest und Doctest auf effiziente und praxisorientierte Weise mittels anschaulicher Beispiele und Aufgaben erlernen möchten, um damit Python Code sauber testen und erheblich verbessern zu können. Erfahre mehr über dieses Unit Test Praxisseminar..
Nutzen
- Schneller und effektiver Einstieg in Unit Test, Pytest und Doctest
- Praktischer Einstieg in Test-Driven-Development (TDD)
- Best Practices für Testable Design, Clean Test und Test Smell
- Fortgeschrittene Techniken wie Test Double
- Code Qualität durch gute Tests deutlich verbessern
Anhand vieler Beispiele und Aufgaben lernst Du die wichtigsten Python Testing Frameworks (Unit Test & Pytest) sowie fortgeschrittene Techniken wie TDD aus praktischer Sicht kennen und wie Du sie in Deinem laufenden Projekt erfolgreich einsetzen kannst. Auch goldene Regeln für Clean Test und Code lernst Du kennen und anzuwenden. Du verbesserst die Qualität und Güte Deines Python Production Codes und verkürzt somit die Entwicklungszeit.
Inhalte
Der Unit Kurs behandelt eine Auswahl folgender Themen:
- Test Structure
- Name Conversion
- Test Lifecycle
- Test Data
- Features von pytest
- Exceptions in pytest
- unittest
- Test with Fixtures
- Parameterized Test
- Test Double
- doctest
- Test-Driven-Development
- Test Smells Catalog
- Test Readability
- Test Maintainability
- Test Trustworthiness
Für weitere Details bitte die untenstehende Agenda ansehen.
Vorkenntnisse
Das Unit Test in Python Seminar an der Münchner Coding Akademie richtet sich an Programmierer mit grundlegenden Python-Kenntnissen, vergleichbar mit unserem Python-Kurs für Programmierer. Es setzt keine Kenntnisse in alten Unit Testing Versionen voraus.
Individuell: wir gehen gezielt auf Dich ein und berücksichtigen Deine Vorkenntnisse, Wunschthemen und Schwerpunkte
Strukturiert und leicht verständlich
Bringe deine Karriere, Studium oder Ausbildung auf die nächste Stufe: mit Zertifikat
Sicher und eigenständig Programme entwickeln (ob privat, beruflich oder für dein Startup)
Viel, viel, viel Praxis: sofort anwendbare Ergebnisse
kleine Gruppen: max. 8 Teilnehmer im 3-Tages-Kurs max. 15 Teilnehmer im Online-Coaching
Von Experten nach der Raed- Methode® entwickelt & auf die Anforderungen von Tech-Unternehmen im Jahr 2020 ausgerichtet
E-Mail-Support auch nach Ende des Kurses
Kursbeschreibung
Dieser dreitägige Kurs bietet eine Einführung und einen tiefen Einblick in das Testen von Python-Code. Der Kurs richtet sich an Programmierer mit Vorkenntnissen in Python, die ein besseres Verständnis für das Testen des eigenen Codes gegen Fehler und Regressionen sowie für die Verbesserung der Testabdeckung bestehender Codebasen entwickeln wollen. Die Teilnehmer erhalten instruktive Problemstellungen, die sie mit den neu erlernten Techniken lösen sollen.
-Warum sollte ich meinen Code testen?
-Wie können Tests helfen, Probleme zu lokalisieren?
-Was macht einen guten Test aus und wie kann ich ihn schreiben?
-Wie kann ich Code mit externen Abhängigkeiten testen?
-Wie kann ich sie vermeiden?
-Wie kann ich vermeiden, (zu viel) Testcode zu schreiben?
-Wie kann ich meine Testsuite auch in Zukunft wartbar halten?
-Wann und warum sollte ich "unittest", "pytest" oder "doctest" verwenden?
Was lernst Du am ersten Tag?
Du lernst wie Du Dein erstes Unit Testing Programm in Python schreiben kannst. Wir steigen langsam ein und schauen uns das Soll/Ist Prinzip von Testing Frameworks an. Du lernst wie die Test Struktur aussehen soll, wie Du Deine Test-Methoden benennen solltest und wie Du die Testdaten ausfindig machen kannst. Dafür eignen sich die Äquivalenz-Klassen sowie Randwerte Techniken. Du meisterst die Syntax und Semantik von Unit Test und PyTest. Nach diesem Tag kannst Du bereits gute Unit Tests für Deinen Python Code schreiben und anwenden.
Was lernst Du am am zweiten Tag?
Am zweiten Tag lernst Du weitere fortgeschrittene Techniken mit Pytest, Unit Test und doctest. Du lernst z.B. wie Du Datenbank und fremde APIs testen kannst, in dem den Code von denen simulierst. Dafür gibt es die Test Double Technik. Test Double ist ein Sammelbegriff für 5 Techniken: Dummy, Fake, Stub, Spy und Mock. Du lernst wie Du diese Techniken mit den Python Test Frameworks anwenden kannst.
Was lernst Du am am dritten Tag?
am letzten Unit Testing Schulung mit Java geht es darum, wie Du gute Tests schreibst. Hier lernst Du die SOLID Prinzipen für Testable Design. Danach schauen wir uns die Test-Driven-Development (TDD)Technik an. TDD realisiert die "Test First: Test code vor Production code" Methode.
TDD verlangsamt zwar am Anfang die Entwicklungsgeschwindigkeit, holt aber später massiv nach an Geschwindigkeit und ist durchaus vorteilhafter ist, als die Tests nachträglich zu schreiben. Denn Clean Code basiert weitgehend auch darauf, dass man Unit Tests vor Production Code schreibt und sich daher grundlegende Gedanken über den Production Code machen muss! Du lernst auch die wichtigen Regeln zum Schreiben von aussagekräftigen und guten Tests und die Best-Practice dazu. Dadurch erkennst Du die sogenannte "Test-Smells".
Test-Smells ist ein Begriff für schlechte Tests, welche eher Nachteile als Vorteile bringen. Hier gibt es ein langes Katalog dafür, welches die Test-Smells in 3 Kategorien unterteilt und bei jeder Kategorie gibt es etliche Test-Smells Fälle. Wir sehen uns die allerwichtigste Test-Smells Fälle an.
DEINE TRAINER
Der Unit Test Kurs für Python-Programmierer wird von einem der folgenden Trainer durchgeführt:

Dr. Stefan Behnel
Expert: Python, Pytest, Unit Test und TDD, Clean Code, Clean Software Architektur, Fast Python, Cython
- Promotion an der TU Darmstadt zum Dr. Ing. in Softwarearchitektur
Referenzen: 15 Jahre Erfahrung als Consultant, Software-Entwickler und Software-Architekt in den Branchen Finanzdienstleistung, Autoindustrie, Verlag und Touristik im Bereich High-Performance Python und Open-Source, Hauptentwickler von Cython, auf Cython basiert die Data Sience Bibliothek PANDA. Python Schulungen für Dräger, Apple, Sky Deutschland, IT-Firmen, ...

Dr. Matthias Hölzl
Expert: Künstliche Intelligenz, Python, C++, Java, JavaScript, Clean Code & Software Architektur
- Promotion an der LMU. Fachbereich: Software Engineering
Referenzen: 30 Jahre Lehr- und Industrieerfahrung. Davon 18 Jahre an der Ludwig-Maximilians-Universität München, zuletzt als Professor für Software and Computational Systems Engineering. Schulung, Technisches Coaching für Maschine Learning, Deep Learning, Prozesse Automatisierung sowie Begutachtung und Verbesserung von Software Architektur bei großen IT Projekten. Python und Java Schulungen für Deutsche Bank, BMW, BA, VKB, etc. Herausgeber und Autor mehrerer Bücher beim Springer-Verlag und Autor zahlreicher wissenschaftlicher Publikationen.

Allaithy Raed
Expert: Java, Python, Clean Code, Clean Software Architektur, Clean Unit Test und TDD, Refactoring Patterns
- Promotion an der LMU im Bereich Programmiersprachen (2022).
Referenzen: 17 Jahre Lehr- und Industrieerfahrung, davon 12 Jahre Dozent an der Ludwig-Maximilians-Universität München für Java, Python, Effiziente Algorithmen, Mehrfach ausgezeichnet für hervorragende Lehre an der LMU, Buchautor für Java & demnächst Python bei den Verlagen Springer und O'Reilly, Entwickler der RAED-Lehrmethode®, Train the Trainer Ausbilder, Team-Schulungen in Java und Python für BMW, VW, BA, SIEMENS, AGFA-Healthcare, TÜV Süd, Schufa AG, ..

Prof. Dr. Peer Kröger
Expert: Künstliche Intelligenz, Data Science, Big Data, SQL/NoSQL Datenbank, Python, Java
- Promotion an der LMU. Im Fachbereich Data Science
Referenzen: Jahrelange Erfahrung in der Umsetzung von Data Science Projekten sowie in der Beratung und in Schulungen u.a. in der Automobil-Industrie, bei Finanzdienstleistern und im Mittelstand. Ca. 150 wissenschaftlich begutachtete Publikationen (über 8000 mal zitiert) zum Thema Data Science, Data Mining, Maschinelles Lernen. KI Mitglied des KI-Kompetenzzentrums Munich Center for Machine Learning (MCML) an der LMU München sowie Professor für Informationssysteme und Data Mining an der CAU zu Kiel (Lehrstuhlinhaber).
ZERTIFIKAT
Selbstverständlich erhältst Du als Teilnehmer am Python Unit Test Kurs für Programmierer ein Zertifikat. Voraussetzung dafür ist die komplette Teilnahme an allen Kurseinheiten und Programmier-Aufgaben und die erfolgreiche Programmierung eines kleinen Abschlussprojektes. Das allerdings wird Dir nach diesem intensiven Unit Testing Kurs mehr Freude als Stress bereiten.
AGENDA
Die Agenda ist aufgrund der zahlreichen Fachbegriffe in englischer Sprache verfasst. Beschreibungen sowie Kursmaterial erhaltest Du auf Deutsch. Den Kurs kannst Du wahlweise in deutscher oder englischer Sprache buchen.
Alle Seminarinhalte werden individuell an die Wünsche unserer Teilnehmer angepasst. Sie können je nach Wissensstand variieren und werden gemeinsam mit dem Seminarleiter an Tag 1 definiert. Bei diesem Python Unit-Test-Seminar hast Du die Wahl aus folgenden Themen:
Python Unit Testing Tag 1
Introduction:
- Test Motivation
- Test Frameworks
- pytest
- unittest
- doctest
Generic Rules:
- Test Structure
- Test Life Cyce
- The AAA-Rule
- Name Conversions
- Test Data
- Happy Path
- Exception Path
- Equivalence classes
- Test Strategy
pytest
- install pytest
- Your first pytest
- assert statement
- failed test
- pytest features
- Expected exceptions
- Marking test methods
- Selection of test methods
- Tests with error handling
Fixture
- what is fixture?
- Reuse of fixture
- config.py
- Multiple fixtures
- Scope of fixtures
- predefined fixtures
unittest
- xUnit-Framework
- unittest
- Fixtures
- Test Cases
- Test Suites
- Why pytst over unittest?
Python Unit Testing Tag 2
Test Double
- Motivation
- Testing Database?
- Dummy
- Fake
- Stub
- Spy
- Mock
doctest
- why doctest?
- Executable documentation
- Executable specification
- pytst vs. unites vs. doctest
Python Unit Testing Tag 3
Test Driven Development
- Motivation
- RED
- GREEN
- REFACTORING
- Baby Steps
- TDD Advantages
Testable Design
- SOLID Principle
- Single Responsibility
- Open Close
- Liskov Substitution
- Interface Segregation
- Dependency Inversion
Clean Test
- Clean Test Rules
- Test Readability
- Test Maintainability
- Test Trustworthiness
- Test Smells Catalog