Softwarequalität durch Unit Testing
What you'll learn
- Du kennst die Konzepte vom Unit-Testen
- Du weißt, was gute von schlechten Unit-Tests unterscheidet
- Du kannst JUnit oder ein anderes Unit-Testing-Framework benutzen
Requirements
- Du solltest programmieren können.
- Die Beispiele sind in JAVA - sie sind jedoch leicht zu verstehen. Daher musst du kein Java könne.
- Einfacher wird es für dich, wenn du geübt darin bist, Frameworks und Bibliotheken zu nutzen.
Description
Prolog:
Ich habe es getan. Ich hatte angefangen, meine komplette Software automatisch zu testen. Hierfür lernte ich JUnit und Mockito und fing an, jede meiner Klassen automatisch zu testen. Ein tolles Gefühl. Irgendwann jedoch, kam ich nicht wirklich weiter. Der Umfang von JUnit war zu gering. Ich griff zu anderen, mächtigeren Frameworks und nutzte die Macht der Reflections, um auch in die tiefsten Innereien meiner Klassen zu schauen, meine Objekte zu manipulieren und so auch die verwinkelten Ecken meiner Software testen zu können.
Aber auch das bereitete mir Probleme. Immer, wenn ich Änderungen am Code vornahm, oder diesen erweiterte, mussten dutzende von Tests angepasst werden. Bei jedem neuen Feature wurden die Tests komplexer und komplizierter. Was ein Aufwand! Irgendwann dämmerte es mir: Tests sind schlecht! Sie kosten viel mehr, als dass sie bringen! Ich schmiss die Tests raus und konnte wieder entspannt programmieren. Gut... die vielen Fehler, die erst spät entdeckt wurden. OK... die paar Regressionsfehler die ich nicht entdeckte.... Ja... die ständig wieder auftauchenden Fehler über die sich der Kunde wundert... aber sonst?
Dann jedoch wurde ich Mitglied eines neuen Teams. Mit diesem kam eine neue Software in meinen Verantwortungsbereich. Diese hatte eine wunderbare Testabdeckung. Einfache Tests. Saubere Tests. Leichte Tests. Ich war verwundert. In diesem Moment war mir klar, es war mein Code, der schlecht testbar war. Tests müssen nicht kompliziert sein. Man muss nur die Konzepte des Testens verstehen. Ich arbeitete mich in die Konzepte ein. Lernte die Prinzipien des guten Testens. Merkte, wie viel gutes Testen mit sauberem Softwaredesign zu tun hat. Was eine Freude! Es kribbelte. Ich schrieb Tests. Wurden sie zu kompliziert, passte ich das Design des Codes an. Meine Tests zeigten mir meine Fehler im Design.
Genau das will ich dir vermitteln!
Softwarequalität durch Unit Testing zeigt dir die Konzepte guter Tests.
In diesem Kurs lernst du nicht nur JUnit und Mockito unter Java kennen - als typische Vertreter moderner Test-Frameworks - sondern auch die Konzepte und Ideen guter Tests.
Dieser Kurs ist KEINE Schritt-für-Schritt Anleitung für JUnit! Es geht hier um mehr. Es gibt genug Tutorials um sich tiefer in JUnit einzuarbeiten - auch auf der JUnit-Seite. Hier geht es wirklich mehr um die Konzepte, um Prinzipien und praktische Tipps.
Automatisiertes Unit-Testen ist wichtig:
um Fehler so früh wie möglich zu entdecken.
um saubereren Code zu schreiben
um zu schauen, ob die Anforderungen richtig umgesetzt wurden
um das "per Hand"-Testen zu reduzieren
um Regressionsfehler zu vermeiden und zu erkennen
um dir schnelles Feedback deiner Arbeit zu geben
um dein Geld zu sparen
um eine ausführbare Dokumentation deines Codes zu erstellen
um eine hohe Qualität deiner Software zu erreichen
Dafür geht es in diesem Kurs um folgende Themen:
Grundlagen des Software-Testings
Die Testpyramide
Black-, Grey- und White-Box-Testing
JUnit Grundlagen
Gute Namen
Der gute Unit-Test: FIRST
Argumente gegen das automatisierte Testen
Nur einen Aspekt testen
Mockito Grundlagen
Weniger ist mehr
Was soll getestet werden?
Single Responsibility Principle (SRP)
Das Gesetz von Demeter
Prinzipien der modernen Softwareentwicklung
Clean Code
Who this course is for:
- Für Softwareentwickler, die ihren Code automatisch testen lassen wollen.
- Für jeden, der Unit-Tests verwendet - und jetzt tiefer in die Materie eintauchen möchte.
- Für jeden, der gerne Unit-Tests verwenden möchte
Instructor
Seit über 10 Jahren beschäftigt sich Thorsten Diekhof mit der Frage, was einen guten Softwareentwickler ausmacht. Seine Erfahrung zeigt:
Das richtige Mindset, die Beherrschung saubere Werkzeuge und eine spielerisch-humorvolle Einstellung sind Grundlage jeder wirklich guten Softwareentwicklung.
Schon während seines Studiums der Geoinformatik, der Soziologie und der Politik in Münster war Thorsten als Softwareentwickler tätig. Direkt nach seinem Diplom in Geoinformatik gründete er mit einem Partner die Binärwert GbR. Über zwei Jahre entwickelte diese Software für Wissenschaft und Wirtschaft.
Die Liebe zog Thorsten nach Berlin. Dort führte ihn seine Neugier auf einen zweijährigen Ausflug in die Spieleindustrie. Als Lead Gamedesigner entwickelte er ein Online-Rollenspiel.
Über zwei Jahre arbeitete Thorsten als agiler Softwareentwickler „im Maschinenraum“ der Qudosoft. Zusätzlich pflegte er seine nebenberufliche Selbstständigkeit als Dozent, Trainer und Spielerfinder für den Bereich Softwareentwicklung.
Anfang 2017 folgte der logische Schritt: Mit den COACHING.CARDS und der Seminarreihe "Abenteuer Softwareentwicklung" machte sich Thorsten selbstständig. Hierzu richtete er einen schicken Workshop- und Seminarraum in Berlin Schöneberg ein.
Wenn er seinen Kopf mal frei bekommen will, segelt er mit seinem kleinen holländischen Plattbodenschiff durch die Berliner Gewässer. Thorsten lebt und arbeitet in Berlin.