Softwarequalität durch Unit Testing

Konzepte und Methoden guter Unit-Tests am Beispiel von Java, JUnit und Mockito. Clean Code in Aktion.

Ratings: 4.38 / 5.00




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