Warum sollte ich testgetriebene Entwicklung praktizieren und wie soll ich anfangen?

StackOverflow https://stackoverflow.com/questions/4303

  •  08-06-2019
  •  | 
  •  

Frage

Viele Leute reden darüber, Tests für ihren Code zu schreiben, bevor sie mit dem Schreiben ihres Codes beginnen.Diese Praxis wird allgemein als Test Driven Development oder kurz TDD bezeichnet.Welche Vorteile habe ich, wenn ich auf diese Weise Software schreibe?Wie fange ich mit dieser Praxis an?

War es hilfreich?

Lösung

Es gibt viele Vorteile:

  • Sie erhalten sofortiges Feedback darüber, ob Ihr Code funktioniert, sodass Sie Fehler schneller finden können
  • Wenn Sie sehen, wie der Test von Rot auf Grün wechselt, wissen Sie, dass Sie sowohl über einen funktionierenden Regressionstest als auch über einen funktionierenden Code verfügen
  • Sie gewinnen an Sicherheit beim Refactoring von vorhandenem Code, was bedeutet, dass Sie den Code bereinigen können, ohne sich Gedanken darüber machen zu müssen, was er beschädigen könnte
  • Am Ende verfügen Sie über eine Reihe von Regressionstests, die während automatisierter Builds ausgeführt werden können, um Ihnen mehr Sicherheit zu geben, dass Ihre Codebasis solide ist

Der beste Anfang ist, einfach anzufangen.Es gibt ein tolles Buch von Kent Beck Alles über testgetriebene Entwicklung.Beginnen Sie einfach mit neuem Code, machen Sie sich keine Sorgen über alten Code ...Wenn Sie das Gefühl haben, dass Sie Code umgestalten müssen, schreiben Sie einen Test für die vorhandene Funktionalität, überarbeiten Sie ihn dann und stellen Sie sicher, dass die Tests grün bleiben.Lesen Sie auch dieser tolle Artikel.

Andere Tipps

Der Vorteilsteil hat wurde kürzlich abgedeckt, wo man anfangen soll ... auf einem kleinen Unternehmenssystem, in dem es nicht zu viele Unbekannte gibt, sodass die Risiken gering sind.Wenn Sie noch kein Test-Framework (wie NUnit) kennen, lernen Sie es zunächst.Andernfalls fangen Sie damit an, Ihren ersten Test zu schreiben :)

Vorteile

  1. Sie finden heraus, wie Sie Ihren Code unterteilen können
  2. Sie finden genau heraus, was Ihr Code tun soll
  3. Sie wissen, wie es sich verhalten soll und ob später durch die Umgestaltung etwas kaputt geht
  4. Gewöhnt Sie an, dafür zu sorgen, dass Ihr Code immer weiß, was er tun soll

Erste Schritte

Tun Sie es einfach.Schreiben Sie einen Testfall für das, was Sie tun möchten, und schreiben Sie dann Code, der den Test bestehen soll.Wenn Sie Ihren Test bestehen, können Sie mit dem Schreiben von Fällen fortfahren, in denen Ihr Code immer fehlschlägt (2+2 sollte beispielsweise nicht gleich 5 sein).

Sobald alle Tests bestanden sind, schreiben Sie Ihre eigentliche Geschäftslogik, um das zu tun, was Sie tun möchten.

Wenn Sie bei Null anfangen, stellen Sie sicher, dass Sie eine gute Testsuite finden, die einfach zu verwenden ist.Ich mag PHP, daher funktionieren PHPUnit oder SimpleTest gut.Fast alle gängigen Sprachen verfügen über eine xUnit-Testsuite, die beim Erstellen und Automatisieren von Tests hilft.

Meiner Meinung nach ist das Beste, dass Sie damit eindeutig erkennen können, ob Ihr Code das tut, was er soll.Das mag offensichtlich erscheinen, aber wie ich in der Vergangenheit herausgefunden habe, kann man sehr leicht von seinen ursprünglichen Zielen abweichen :p

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top