Das äußerst empfehlenswerte Buch "Pragmatic Unit Testing in Java 8
with JUnit" wird im Buchclub in der achtundneunzigsten Episode des
Anwendungsentwickler-Podcasts besprochen. Inhalt Das Buch ist meine
absolute Empfehlung für jeden Azubi. Meine eigenen Azubis lesen es
schon direkt im 1. Ausbildungsjahr, kurz nachdem sie ihre ersten
Java-Aufgaben gelöst haben. Für mich gehört Unit-Testing einfach
mit zur Ausbildung dazu und man kann gar nicht früh genug damit
anfangen. Bislang waren die Rückmeldungen zum Buch sehr positiv.
Alle Azubis haben es gut verstanden und konnten die Inhalte auch
direkt in die Praxis umsetzen. Wir haben uns für das Durcharbeiten
meistens ca. 2 Wochen Zeit genommen. Das Buch ist sehr verständlich
geschrieben, enthält tolle Beispiele - und zwar endlich einmal auch
in Java 8 - und ist dank des geringen Umfangs von knapp 200 Seiten
sehr schnell zu lesen. Die Bücher aus dem Hause Pragmatic
Programmers kann man eigentlich ausnahmslos empfehlen. Sie haben
u.a. auch das "Standardwerk" zum Einstieg in Ruby on Rails* oder
POODR* veröffentlicht. Pragmatic Unit Testing in Java 8 with JUnit*
reiht sich - meiner Meinung nach - hier perfekt ein. Grundlagen Das
Buch führt auf knapp 50 Seiten zunächst in das Thema Unit-Tests ein
und erklärt die Funktionsweise von JUnit. Schritt für Schritt wird
ein lauffähiger Unit-Test erstellt und dabei werden auch die neuen
Entwicklungen in JUnit berücksichtigt - also keine alten
test*-Methoden mehr, sondern vernünftige Annotations. Dabei wird
auch gleich das berühmte AAA zum Aufbau der Test-Methoden erläutert
und @Before und @After eingeführt. Ich kann mir in Zukunft meine
eigenen Erklärungen sparen und lasse meine Azubis diese ersten 50
Seiten lesen. Danach sollten sie alle wichtigen Begriffe und Ideen
zum Thema Unit-Tests und Junit kennen :-) Das Buch startet mit
einem schönen Überblick, warum man überhaupt testen sollte.
Außerdem enthält es Schritt-für-Schritt-Anleitungen, um Unit-Test
mit Eclipse zu erstellen. Im Anhang wird aber auch auf IntelliJ und
Netbeans eingegangen, sodass man unabhängig von der konkreten IDE
mitmachen kann. Die zu testenden Codebeispiele werden ebenfalls
ausführlich erläutert. Es können also auch absolute Anfänger
mitarbeiten. Als nächstes werden Assertions im Detail vorgestellt.
Auch die Hamcrest-Matcher gehören dazu, um sprechende Tests zu
schreiben, und die unterschiedlichen Möglichkeiten z.B. mittels
Annotationen werden vorgestellt. Akronyme Der nächste Teil (ca. 40
Seiten) ist dann ganz den "Mnemonics" gewidmet. Das hilft in der
Praxis, ist aber nicht prüfungsrelevant. FIRST: fast, isolated,
repeatable, self-validating, timely. Right-BICEP: right, boundary
conditions, inverse relationships, cross-checking, error
conditions, performance. CORRECT: conformance, ordering, range,
reference, existence, cardinality, time. Anhand dieser einprägsamen
Akronyme geht Jeff Langr die Eigenschaften guter Unit-Tests durch
und bringt den Lesern damit gleich bei, worauf sie bei der
Programmierung ihrer Tests achten sollten, um keine falsche
Sicherheit zu erreichen. Design Im dritten Teil (ca. 60 Seiten)
widmet sich das Buch den "großen" Themen Refactoring und
Mock-Objekte. Es wird intensiv geschildert, warum Refactoring
wichtig ist und warum Unit-Tests unabdingbare Voraussetzung für das
Refactoring des eigenen Codes sind. Außerdem wird erklärt, wofür
man Mock-Objekte braucht und wann man sie besser nicht einsetzen
sollte. Das Kapitel wird abgerundet mit einer stimmigen Liste von
Test Smells, die auf ein nötiges Refactoring des Test-Codes
hindeuten. Somit wird dem Leser gleich an die Hand gegeben, dass
auch der Test-Code den gleichen Qualitätskriterien genügen sollte
wie der Produktivcode. Sogar ein Kurzausflug in die
SOLID-Prinzipien ist enthalten. Als nächstes werden Mock-Objekte
vorgestellt und die Unterschiede zwischen Stubs und Mocks
erläutert. Der Teil schließt mit einem Kapitel zum Refactoring des
Test-Codes. Das ist ein Vorgang, der zu jedem testgetriebenen
Entwicklungsprozess gehören sollte. Big Picture Der letzte Teil des
Buchs (ca. 50 Seiten) geht dann konkret auf Test Driven Development
ein und auch auf das Testen schwieriger Probleme wie zum Beispiel
Multithreading und Datenbanken. Ganz zum Schluss werden dann auch
noch weitere wichtige Begriffe erläutert wie z.B. Continuous
Integration und Code Coverage. Es ist also auch etwas für
fortgeschrittene Tester dabei. Fazit Ich konnte Pragmatic Unit
Testing in Java 8 with JUnit* gut von vorn bis hinten durchlesen.
Es ist durchgängig interessant geschrieben und enthält viele
lehrreiche Tipps. Es ist daher meine Empfehlung für alle Azubis
(oder auch Ausbilder ;-) ), die sich dem Thema Unit-Tests widmen
möchten (oder müssen). Es gehört für mich ab sofort zur
Standardbibliothek für meine Azubis. Tipp für Ausbilder Ich würde
neuen Auszubildenden das Buch nach ca. drei Monaten Einarbeitung
zur Lektüre empfehlen. Dann sollten sie bereits einige (negative)
Erfahrungen mit der Programmierung gemacht haben und schnell
einsehen, warum automatische Tests so wichtig sind. Die
Java-Vorkenntnisse sollten dann auch ausreichen, um das Buch ohne
Probleme zu verstehen. Literaturempfehlungen Logisch, oder? :-) *
Die perfekte Ergänzung für einen noch tieferen Einstieg in das
Testen deiner Software: * Links Permalink zu dieser Podcast-Episode
RSS-Feed des Podcasts JUnit Unit Testing with JUnit - Tutorial
JUnit Cheat Sheet
Kommentare (0)
Melde dich an, um einen Kommentar zu schreiben.