Zum Inhalt springen

Bad Tests, Good Tests

Rezension von Sven Woltmann

Tests und testgetriebene Entwicklung (TDD) sind in den meisten IT-Teams angekommen. Tests sollen das korrekte Verhalten neuer und bestehender Features sicherstellen, dabei Refactorings unbeschadet überstehen, als Dokumentation neuen Entwickler:innen den Einstieg in den Code erleichtern und – obendrein – zu sauber(er)em Code führen.

Leider sind viele Tests die Zeit nicht wert, die in ihre Entwicklung investiert wird. Sie sind schlecht les- und wartbar. Und oft müssen sie bei Refactorings angepasst werden, da sie nicht das Resultat einer Operation verifizieren, sondern wie die Operation ausgeführt wurde.

Bad Tests, Good Tests erklärt anhand zahlreicher Beispiele (etwa die Hälfte des Buches enthält Code) was schlechte Tests ausmacht – Beispiele, wie der Autor sie in realen Projekten vorgefunden hat. Jedem Beispiel stellt der Autor dann konkrete Verbesserungsvorschläge gegenüber.

Die Bandbreite der Mängel reicht von schlechter Lesbarkeit (z. B. lange Setup- oder Assertion-Blöcke) und offensichtlichen Fehlern (z. B. vergessene Assertions) über lückenhafte Tests (die trotz geänderter Funktionalität nicht fehlschlagen) und subtile Fehler (z. B. Exceptions, die an anderen Stellen als erwartet geworfen werden) bis hin zu völlig unnützen Tests (die z. B. die Test-Library verifizieren anstatt den eigenen Code).

Das Buch ist außerordentlich praxisnah und sowohl für Anfänger:innen als auch für fortgeschrittene Entwickler:innen geeignet.

Anfänger:innen müssen die Fehler nicht wiederholen, die andere vor ihnen gemacht haben. Fortgeschrittene Programmierer:innen werden sicher das eine oder andere Anti-Pattern aus ihrer täglichen Arbeit wiedererkennen und können ihre Toolbox mit neuen Techniken füllen.

Der Autor schreibt verständlich und humorvoll. Und er weist ausdrücklich darauf hin, dass man seine Regeln auch brechen darf, wenn es im Einzelfall der Sache dient.

Eine klare Empfehlung für jede:n Java-Entwickler:in.

🎧 Geeignet als Hörbuch? Nein, aufgrund zahlreicher Codebeispiele.

Andere Empfehlungen aus den Genres dieses Buches

Suche