Vier Tipps für die Einführung Effizienter mit Test-Driven Development

Das TDD-Konzept wird im Alltag unterschiedlich umgesetzt.
Das TDD-Konzept wird im Alltag unterschiedlich umgesetzt.

Beim Test-Driven Development (TDD) geht es um das Schreiben von schlankem Code mit einer hohen Testabdeckung. Die Entwickler schreiben den Test vor dem eigentlichen Code, und dieser gilt als fertig, sobald er den Test besteht. Vier Tipps sollen helfen, um die Vorteile des TDD maximal auszuschöpfen.

Durch den Umstieg vieler Unternehmen auf agile Entwicklungspraktiken erlebt TDD zunehmendes Interesse. Damit sie die Entwicklungsinnovation mit jener Geschwindigkeit skalieren können, die zum Erhalt der eigenen Wettbewerbsfähigkeit erforderlich ist, müssen Unternehmen ihre Testinitiativen zeitlich vorverlegen. TDD ist ein Prozess, der garantiert, dass Unternehmen ihre Entwicklungsprojekte mit einer guten Grundlage an Tests beginnen, sodass die Softwarequalität über den gesamten Entwicklungs-Lebenszyklus hinweg gewährleistet ist.

Als Hauptvorteil unterstützt TDD Entwickler beim Schreiben von Code, der sich leicht pflegen und prüfen lässt. TDD verhindert auch ein Überfrachten des Codes (Feature-Creep oder Gold- Plating), indem es sicherstellt, dass nur das Minimum an Code erstellt wird, das zur Implementierung der jeweiligen Funktionalität erforderlich ist. Die Bestätigung, dass der richtige Code geschrieben wird, verhilft den Teams zu mehr Effizienz und verhindert das Vergeuden wertvoller Entwicklungs-Ressourcen zum Implementieren der falschen Funktionalität.

Als Vorbedingung für die Umsetzung des TDD muss das betreffende Unternehmen mit Modultests (Unit-Tests) arbeiten. Sie sind eine Möglichkeit, um sicherzustellen, dass prüfbarer Code geschrieben wird. Dies wiederum hilft, die Kosten für die Softwarepflege zu senken und die technische Schuld gering zu halten. Indem man sicherstellt, dass eine solide Regression-Suite vorhanden ist, wird man umgehend benachrichtigt, sobald etwas infolge von Codeänderungen nicht mehr funktioniert.

Die moderne Softwareentwicklung sieht meist das Integrieren von Bibliotheken, das Verknüpfen von bestehendem Code und das Ergänzen vorhandener Funktionalität vor. Allerdings können es sich viele Entwickler nicht leisten, komplett neuen Code zu schreiben, sodass das TDD in vielen Fällen einfach nicht praktikabel ist. Stattdessen haben viele Entwickler eine eigene TDD-Praktik entwickelt, um das Konzept umzusetzen. Vier Tipps helfen bei einer erfolgreichen Implementierung:

1. TDD auf Bestandscode

Ein gängiges Problem bei der TDD-Implementierung taucht immer dann auf, wenn eine Organisation untestbaren Code übernommen hat und die technische Schuld nicht abbezahlen kann. Soll der Code überarbeitet werden und, wenn ja, wie viel Refaktorierung ist notwendig, um das TDD auf sinnvolle, realisierbare Weise zu praktizieren?

Wenn die Forderung besteht, das TDD bei Bestandscode anzuwenden, ist der Versuch, ein ideales TDD zu implementieren, eindeutig zum Scheitern verurteilt. Denn der übernommene Code wurde niemals mit Blick auf seine Testbarkeit erstellt. Vielleicht gehört der ursprüngliche Autor nicht mehr dem Team oder gar dem Unternehmen an oder die abhängigen Bibliotheken haben sich geändert.

Befindet sich also der Bestandscode bereits im Einsatz und funktioniert, sind die mit der technischen Schuld einhergehenden Risiken relativ gering verglichen mit dem Risiko, das sich durch neue, ungeprüfte Arbeitsresultate ergibt. Wendet man das TDD bei dem neu geschriebenen Code (beispielsweise bei Änderungen am bestehenden Code) an, minimiert man das Risiko und erhöht die technische Schuld nicht weiter.