Testgetriebene Entwicklung: Welcher Test-Typ bist du?

Du wachst nicht eines Tages auf und fängst an, gute Tests zu schreiben.

Dahinter steckt ein Prozess, eine Verwandlung. Zoologen sprechen von der „Umwandlung der Larvenform zum Adultstadium“.

[caption id="attachment_25744" align="alignright" width="240" caption="Foto: Wooden Wings von MrClean1982 (Lizenz: CC-BY-NC)"][/caption]

Die Raupe wird zum Schmetterling.

Aber welche Stufen der Entwicklung durchlaufen Testautoren dabei nun genau?

Der Sturkopf

Der Sturkopf ist der Meinung, er käme ohne Tests schneller voran. Verschleiert mit durchaus plausiblen „Vorbehalten“ (die er mit sachkundigeren Kollegen teilt) die Tatsache, dass ihm kaum Vorzüge von Tests einfallen und er Tests bisher praktisch nicht angewandt hat.

Hat wahrscheinlich nie ein komplexes Projekt über einen längeren Zeitraum im Team entwickelt. Oder von anderen übernehmen und dann erweitern müssen. Oder einen neuen Kollegen in eine umfangreiche Code-Basis einarbeiten dürfen.

Der Sturkopf gehört zu den bedrohten Arten, muss aber nicht geschützt werden.

Wenn der Sturkopf sich irgendwann doch noch von Tests überzeugen lässt, wird er zunächst…

Der Anfänger

Der Anfänger hat die Notwendigkeit von Tests begriffen, kämpft aber meist noch mit den Grundlagen von Tests: Wie teste ich richtig? Was ist wichtig? Wie strukturiere ich Tests?

Der Anfänger wählt häufig den kompliziertesten Weg, um einfache Dinge zu testen. Aber das ist durchaus in Ordnung, wir alle lernen jeden Tag.

Schlecht ist dagegen, wenn aus der anfänglichen Unsicherheit Übereifer und sogar Obsession wird. Der Anfänger wird dann mit einiger Wahrscheinlichkeit…

Der Test-Nazi

Der Test-Nazi schreibt Tests für alles, was nicht bei drei auf den Bäumen ist — völlig unbeirrt von der Frage nach dem Nutzen.

Beherrscht Stubbing und Mocking perfekt, ohne sich der Gefahren dieser Methode bewusst zu sein (oder schlimmer noch: sie billigend in Kauf nehmend).

Achtet auf 100%-ige Testabdeckung des Codes. Zählt andere an, wenn nicht alle Ausnahmen im Code getestet sind. Achtet peinlichst auf Test-Design (z.B. DRY).

Doch spätestens, wenn er das erste Mal einen Großteil des Codes under Test löschen konnte, ohne dass die betroffenen Tests fehlschlagen, erkennt er die Folgen seines Tuns. Er erreicht die höchste Stufe der Entwicklung und wird…

Der Pragmatiker

Der Pragmatiker ist von Erfahrung geprägt. Er weiß um die Notwendigkeit von Tests (auch in Vorbereitung auf umfangreiche Refactorings) und die Gefährlichkeit von Stubbing/Mocking — gebranntes Kind scheut das Feuer.

Setzt auf Vernunft bei der Testabdeckung, weil er den den geschäftlichen Nutzen im Blick hat. Schreibt auf diese Weise Tests, die auch tatsächlich wirtschaftlich sind.

Fazit

Diese Liste erhebt nicht den Anspruch, vollständig zu sein, sondern beruht auf persönlichen Beobachtungen.

Was ist deine Erfahrung mit den Entwicklungsstufen auf dem Weg zu guten Testautoren? Welche Typen kennst du? Sag's uns in den Kommentaren.

Aktualisiert: