Softwarequalität durch Unit Testing

Der Autor berichtet über seinen Weg des Lernens und der Implementierung automatisierter Tests in seinen Softwareentwicklungsprozess. Sie beginnen zunächst mit JUnit und Mockito, erkennen aber bald, dass diese Frameworks ihre Grenzen haben. Sie wenden sich leistungsfähigeren Frameworks zu und verwenden Reflections, um selbst die kompliziertesten Teile ihrer Software zu testen. Es ist jedoch schwierig, die Tests zu pflegen und anzupassen, wenn sich der Code weiterentwickelt. Schließlich kommen sie zu der Erkenntnis, dass Tests eine Last sein können, und beschließen, sie zu verwerfen.

Ihre Sichtweise ändert sich, als sie in einem neuen Team auf eine Software mit hervorragender Testabdeckung stoßen. Sie erkennen, dass das Problem nicht beim Testen selbst liegt, sondern bei der Testbarkeit ihres eigenen Codes. Sie lernen die Konzepte des guten Testens und wie sie mit sauberem Softwaredesign zusammenhängen. Dieses neu gewonnene Verständnis bereitet ihnen Freude, und sie beginnen, Tests zu schreiben, die sie bei der Verbesserung ihres Code-Designs unterstützen.

Anschließend stellt der Autor seinen Kurs „Softwarequalität durch Unit-Tests“ vor, der die Konzepte guter Tests vermitteln soll. Der Kurs behandelt JUnit und Mockito, konzentriert sich aber mehr auf die Prinzipien, Konzepte und praktischen Tipps des Testens. Die Bedeutung automatisierter Unit-Tests wird hervorgehoben, einschließlich der Fehlererkennung, des Schreibens von saubererem Code, der Sicherstellung der korrekten Umsetzung von Anforderungen, der Reduzierung manueller Tests, der Erkennung von Regressionsfehlern, der Bereitstellung von schnellem Feedback, der Einsparung von Geld und der Erstellung ausführbarer Dokumentation.

Der Kurs deckt verschiedene Themen ab, darunter Grundlagen des Softwaretestens, die Testpyramide, Black-, Grey- und White-Box-Tests, JUnit-Grundlagen, gute Namenskonventionen für Tests, das FIRST-Prinzip für gute Unit-Tests, Argumente gegen automatisiertes Testen, welche Aspekte getestet werden sollten, Mockito-Grundlagen, die Einbeziehung der Prinzipien der modernen Softwareentwicklung wie sauberer Code und das Single-Responsibility-Prinzip (SRP) sowie das Demeter-Gesetz.

Insgesamt zeigt die Reise des Autors, wie wichtig es ist, gute Testverfahren zu verstehen und umzusetzen, um qualitativ hochwertige Software zu entwickeln.

Kurslink: https://www.udemy.com/course/clean-code-unit-testing-java-junit/