To test-first or not to test, that is the question.
―William Shakespeare
Einleitung
Test Driven Development, oder TDD, entstand als Teil von Extreme Programming (XP) um das Jahr 2000. Die Idee hinter TDD ist einfach: Zuerst schreiben Sie einen Test. Dann schreiben Sie den Code, um diesen Test bestehen zu lassen. Dieser Prozess wird von Entwicklern manchmal sehr strikt befolgt.
Aber ist TDD unverzichtbar? Ist es nützlich? Und sollten Ihre Ingenieure es anwenden?
Meine Sichtweise
Ich glaube, Tests sind super wichtig. Sie helfen sicherzustellen, dass Ihr Code wie erwartet funktioniert.
Allerdings weiß ich am Anfang der Erstellung eines neuen Features oft nicht, wie die endgültige Architektur aussehen wird. Einen Test in diesem frühen Stadium zu schreiben, wäre nur auf einer sehr hohen Ebene möglich. Das führt oft zu Tests, die nicht optimal sind. Sie könnten zu langsam sein und Tools wie Selenium verwenden, oder sie sind zu unspezifisch, wenn Bugs auftreten.
Tests zuerst zu schreiben ist für mich weder unverzichtbar – noch sehe ich einen Vorteil bei der regulären Softwareentwicklung in meinem Fall.
Ist TDD schlecht?
Wenn Ihnen TDD gefällt, dann machen Sie weiter und nutzen Sie es. Es ist nichts falsch daran, dieser Methode zu folgen, wenn sie zu Ihrem Arbeitsstil passt. Es kann ein großartiger Weg sein, sicherzustellen, dass Ihr Code zuverlässig und wartbar ist.
Ich persönlich nutze es nicht oft. Ich schreibe zuerst meinen Code, dann Tests, dann Code, dann Tests und verfeinere dabei. Strikt immer erst Tests und dann Code zu schreiben, passt nicht zu meinem Arbeitsstil.
Wann TDD unverzichtbar ist
Es gibt Zeiten, in denen ich TDD – also zuerst den Test schreiben, dann die Implementierung – als unverzichtbar empfinde.
Und das ist der Fall, wenn ich auf einen Bug stoße. Ich schreibe zuerst einen Test, um den Bug zu reproduzieren. Erst nachdem ich einen Test habe, der den Bug reproduziert, gehe ich dazu über, ihn zu beheben. Dieser Ansatz stellt sicher, dass der Bug nie wieder auftreten wird, weil der Test ihn erkennen wird, falls er es doch tut.
TDD ist perfekt für das Schreiben von Regressionstests.
Fazit
Tests sind unverzichtbar, aber Tests zuerst zu schreiben ist meiner Meinung nach nicht unverzichtbar. Ich schreibe nur bei Bugs zuerst Tests. In der regulären Softwareentwicklung mache ich es selten – und es ist mir auch nicht so wichtig. YMMV.
