C++ Unit Testing Praxisschulung für C++ Programmierer
Du bist C++ Programmierer und willst für Deinen oder für einen fremden Code strukturierte und hochwertige Unit Tests schreiben? Du willst gerne Datenbanken und fremde APIs testen, oder schlechte und sinnlose Unit Tests 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 C++ Unit Testing Praxisseminar ist ideal für alle C++ Programmierer, die Unit Test auf effiziente und praxisorientierte Weise mittels anschaulicher Beispiele und Aufgaben erlernen möchten, um damit C++ Code sauber testen und erheblich verbessern zu können. Erfahre mehr über diese C++ Unit Test Praxisschulung...
Nutzen
- Schneller und effektiver Einstieg in Unit Test mit C++
- Praktischer Einstieg in Test-Driven-Development (TDD)
- Best Practices für Testable Design, Clean Test und Test Smell
- Fortgeschrittene Techniken wie Test Double in C++
- C++ Code Qualität durch gute Tests deutlich verbessern
Anhand vieler Beispiele und Aufgaben lernst Du die wichtigsten C++ Testing Frameworks sowie fortgeschrittene Techniken wie TDD aus praktischer Sicht kennen und wie Du sie in Deinem laufenden C++ 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 C++ Production Codes und verkürzt somit die Entwicklungszeit.
Inhalte
Der Unit Kurs behandelt eine Auswahl folgender Themen:
- Die Google und MockTest Frameworks
- Test Driven Development in C++
- C++ Testable Design
- Test Smells
- Test Double
- GoogleMock
- Matcher
Für weitere Details bitte die untenstehende Agenda ansehen.
Vorkenntnisse
Der C++ Unit Testing Kurs ist konzessioniert und optimiert für Personen mit grundlegenden C++ Kenntnissen, mindestens im Umfang unseres C++ Kurses für Einsteiger.
Der Kurs eignet sich für Softwareentwickler und -architekten, aber auch für Tester und Product Owner, da sie hier das entsprechende Know-how erlangen, wie es hinter den Testing Frameworks aussieht, wie man mit TDD eine saubere Softwarearchitektur realisiert und wie man mit Test Double fremde APIs oder Datenbanken testen kann. Diese Themen sind nicht nur für die Softwareentwickler interessant.
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
In C++ gibt es mehrere verbreitete Test Frameworks, die sich in ihren Möglichkeiten und der Art ihrer Anwendung unterscheiden. Im Folgenden wird der Aufbau der C++ Unit Testing Schulung beschrieben, wenn die Google Test und Mock Framework verwendet werden.
Was lernst Du am ersten Tag?
Du lernst wie die GoogleTest Framework aufsetzen und anwenden kannst. Wir fangen mit grundlegenden Konzepten an, wie Du Dein erstes C++ Unit Test schreiben kannst. Dafür lernst Du die vier Test Phasen, das AAA Muster sowie die Assertions. Danach lernst Du, wie Du gute Testdaten mit Hilfe von Äquivalenzklassen ausfindig machen kannst. Du lernst auch was Test Fixtures ist, wie Du parametrized Test schreibst und wie Du mit Test Coverage feststellen kannst, ob Du Teile von Deinem Production Code vergessen hast zu testen oder nicht. Bereits in diesem ersten Tag lernst Du auch die agile SW-Methode, welche auf Qualität zielt, nämlich die Test-Driven Development mit ihren drei Schritten: red-green-refactoring. Viele Beispiele und Workshops begleiten Dich, so dass Du am Ende von diesem Tag Deine C++ Unit Test und TDD schreiben kannst.
Was lernst Du am am zweiten Tag?
Viele Softwareentwickler, die erst nach dem Production Code also nachträglich Unit Test schreiben, stellen immer fest, dass diese Aufgabe sehr lästig und manchmal ja wegen viele Code Abhängigkeiten, starke Kopplung und niedrige Kohäsion recht komplex und alles anders als trivial oder einfach ist. Die Frage, wie schreibe ich Tests für einen solchen schweren Code kann man sehr leicht beantworten: schreibe ja nicht so einen komplexen gut mit starker Koppelung, dann kann man deutlich einfacher Unit Test schreiben. Genau ist das der Schwerpunkt von Testable Design. Wie schreibe ich meinen Production Code so, dass ich für diesen Code auch gute Unit Test schreiben? Wir sehen uns die SOLID Prinzipen an und warum sie zu einem Code führen, der relativ leicht testbar ist. Danach widmen wir uns die so genannte Test-Smells an. Also schlecht geschriebene Unit Test. Dafür gibt es ein Katalog von drei Kategorien und in jeder Kategorie gibt es verschiedene Muster für schlechte Unit Test, die sogenannte Test Smells. Wir werden keine Zeit haben alle diese Test-Smells Katalog zu behandeln, aber wir schauen uns die in der Praxis meist vorkommende Fehler beim Schreiben von Unit Test und wie kann man in der Praxis gute Unit Tests schreiben.
Was lernst Du am am dritten Tag?
Am letzten Tag lernst Du fortgeschrittene Techniken zum Testen von einem Code, den wir sogar nicht mal haben, sondern irgendwann noch bekommen könnten: z.B. Code für Datenbank Anbindung und Zugriffe und CRUD Operationen oder fremde APIs Aufrufe! Das Prinzip ist ziemlich einfach, wir schreiben unseren eigenen sehr einfachen Code und imitieren einfach das Verhalten von dem Code, den wir noch bekommen könnten. Dafür brauchen wir nur die Spezifikation der Schnittstelle zu wissen, also was tut dieser Code genau, damit wir das Verhalten imitieren können. Dafür gibt es die sogenannte Test-Double Techniken, mit denen wir solchen Code schreiben können. Test Double ist ein Sammelbegriff für 5 Techniken: Dummy, Fake, Stub, SPD und Rock, die wir lernen werden. Doch für diese Test-Double gibt es auch verschiedene Frameworks, welche das Arbeiten mit Test-Double vereinfachen, so dass wir nicht viel Code von scratch schreiben, sondern die Test-Double Frameworks Klassen und Methoden dafür nutzen können. Einer solchen Frameworks ist GoogleMock. Wir lernen die Grundlagen von GoogleMock und wie wir damit Test-Double erstellen können. Am Ende schauen wir uns vordefinierte Matcher an und wie wir unsere eigene Matcher definieren können, um noch aussagekräftiger und mächtiger Unit Tests zu schreiben.
DEINE TRAINER
Der Unit Test Kurs für C++ Programmierer wird von einem der folgenden Trainer durchgeführt:

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, ..
ZERTIFIKAT
Selbstverständlich erhältst Du als Teilnehmer am C++ 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 dieser intensiven C++ Unit Testing Schulung 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 C++ Unit-Test-Seminar hast Du die Wahl aus folgenden Themen:
C++ Unit Testing Tag 1
GoogleTest Framework:
- Google Test/Mock Frameworks
- Motivation and Questions
- Tests Structure in GoogleTest
- Equivalence Classes
- Test names
- Assertions
- Test Fixture
- Parameterized Test
- Code Coverage
Test Driven Development
- TDD Red
- TDD Green
- TDD Refactor
- TDD Workshops
C++ Unit Testing Tag 2
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
C# Unit Testing Tag 3
Test Double
- Dummy
- Fake
- Stub
- Spy
- Mock
GoogleMock
- Test Double
- Problems of Test Double in C++
- Writing Mock-Classes
Matcher
- what is a matcher?
- predefined matcher
- writing your own matcher