Softwarequalität durch Unit Testing
Konzepte und Methoden guter Unit-Tests am Beispiel von Java, JUnit und Mockito. Clean Code in Aktion.
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
What You Will 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
Who Should Attend!
- 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