3 Stimmen

Wie haben Unit-Tests Ihr Leben verbessert?

Ok, ich will ehrlich sein, ich habe in meinem Leben wahrscheinlich nicht mehr als 10 Unit-Tests geschrieben.

Ich nehme ein neues Projekt in Angriff, und da ich der einzige Programmierer bin, bedeutet das Ich sollte Angst haben ... große Angst .

Die Vorstellung, dass ich Pseudogarantie dass meine Software funktioniert, bringt ein Gefühl der Freude mit sich.

Sicherlich werde ich eine Menge Fälle verpassen, in denen ich hätte testen sollen, aber daraus werde ich im Laufe der Zeit lernen.

Unit-Tests werden mir helfen, nachts besser zu schlafen was besser für meine Gesundheit ist.

Mein Code wird scheitern, aber zumindest habe ich eine bessere Vorstellung davon, wann es passieren wird. .

Wie hat das Testen von Einheiten Ihr Leben verbessert (oder hat es das?), obwohl der Rest Ihres Teams nicht auf den fahrenden Zug aufspringen ?

0 Stimmen

7voto

David Vidmar Punkte 3002

Der weitaus größte Wert, den Unit-Tests für mein Projekt haben, ist Vertrauen . Mit dieser Zuversicht ist es viel einfacher, neue Funktionen hinzuzufügen, die zu Beginn nicht geplant waren, und den Code auseinanderzunehmen, um etwas zu ändern oder umzukehren.

Mit Test weiß ich Ich (oder irgendjemand anders!) habe nichts kaputt gemacht, was bereits funktionierte.

Ohne Prüfung sind Sie mutig (oder dumm), wenn Sie große Änderungen vornehmen und diese in der nächsten Minute in der Produktion einsetzen.

4voto

Elie Punkte 13413

Durch Unit-Tests habe ich die Zahl der "dummen Fehler", die während der Testphase gemeldet werden, reduziert. Außerdem habe ich dadurch ein höheres Maß an Vertrauen in meinen Code gewonnen.

4voto

HTTP 410 Punkte 16820

Okay, da sich niemand sonst gemeldet hat, um des Teufels Advokat zu spielen, werde ich es tun.

Automatisierte Unit-Tests können für einige Projekte von großem Nutzen sein, können aber auch viele der folgenden Probleme mit sich bringen:

  • Das verbraucht eine Menge technischer Ressourcen.
  • Es kann viele Arbeitsstunden in Anspruch nehmen, um Umgebungs- und Einrichtungsprobleme aus der Gleichung zu entfernen.
  • Bei einigen Projekttypen, insbesondere bei grafischen Benutzeroberflächen, ist der ROI gering.
  • Es werden nicht viele Fehler gefunden, da es unmöglich ist, alle Ausführungspfade für alle außer den trivialsten Programmen zu bewerten.
  • Es fängt keine Integrationsfehler ab.
  • Fehler auf Systemebene, z. B. Funktionen, die von mehreren Einheiten ausgeführt werden, oder nicht funktionale Bereiche wie die Leistung, werden nicht erfasst.
  • Testabdeckung und Abdeckungsgates können zu einem zunehmend nutzlosen Mantra werden
  • Es ist ein nachhaltiger Prozess erforderlich, der sicherstellt, dass Fehler in Testfällen sofort überprüft und behoben werden. Andernfalls wird sich die Anwendung nicht synchron mit der Unit-Test-Suite entwickeln.
  • Sie verursacht erhebliche Opportunitätskosten - es gibt andere Aktivitäten wie Code-Reviews, die einen ebenso guten oder sogar besseren ROI haben.
  • Das kann einen erheblichen Kulturwandel bedeuten.

Entwickler sollten also nicht dogmatisch (ja oder nein) an Unit-Tests herangehen, sondern für jedes Projekt eine ROI-Kalkulation durchführen.

4voto

Argelbargel Punkte 5270

Wie Elie schon sagte, ist das Unit-Testing eine großartige Möglichkeit, "dumme" oder einfache Fehler sehr früh zu finden. Für mich ändert sich dadurch die Art und Weise, wie ich über Code denke. Meinen Code testbar zu machen, macht ihn weniger spröde und flexibler (z.B. Depenceny Injection/Inversion of Control ist für mich ganz natürlich geworden, weil ich das sowieso zu Testzwecken gemacht habe).

Der größte Vorteil, den ich persönlich aus einer gründlichen Testsuite ziehe, ist das Vertrauen, komplizierten Code auch noch Monate nach dem Schreiben zu ändern, ohne Angst zu haben, versehentlich etwas kaputt zu machen.

Ich bin noch nicht so weit, aber mit etwas Disziplin beim Schreiben sind Unit-Tests auch eine gute Möglichkeit, Ihren Code zu dokumentieren.

2voto

kpollock Punkte 3759

Ich bin ein TDD(eveloper) seit meinem 2.* Projekt an der Uni (damals 1988). Ich weiß nicht, ob der Begriff damals schon in Gebrauch war.

Das Beste ist die Möglichkeit, Dinge zu ändern und sehr schnell zu überprüfen, dass man nichts anderes kaputt gemacht hat. Einfache Regressionstests.

Sie sind auch eine gute Dokumentation der Verwendung von Objekten und Methoden.

*und das lag direkt daran, wie das erste Projekt lief....

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X