Ich arbeite in einer kleinen Firma als Solo-Entwickler. Ich bin der einzige Entwickler im Unternehmen. Ich habe mehrere (relativ) große Projekte, die ich regelmäßig geschrieben und gepflegt habe, und keines hat Tests, um sie zu unterstützen. Wenn ich neue Projekte beginne, frage ich mich oft, ob ich einen TDD-Ansatz ausprobieren soll. Es klingt nach einer guten Idee, aber ich kann die zusätzliche Arbeit ehrlich gesagt nie rechtfertigen.
Ich arbeite hart, um in meinem Design zukunftsorientiert zu sein. Mir ist klar, dass sicherlich eines Tages ein anderer Entwickler meinen Code warten oder zumindest Fehler beheben muss. Ich halte die Dinge so einfach wie möglich und kommentiere und dokumentiere Dinge, die schwer zu begreifen sind. Und die Tatsache ist, dass diese Projekte nicht so groß oder kompliziert sind, dass ein anständiger Entwickler Schwierigkeiten haben würde, sie zu verstehen.
Viele der Beispiele, die ich bei Tests gesehen habe, betreffen alle Aspekte des Codes. Da ich der einzige Entwickler bin und dem Code im gesamten Projekt sehr nahe bin, ist es viel effizienter, ein Schreib- als auch ein manuelles Testmuster zu befolgen. Ich stelle auch fest, dass sich Anforderungen und Funktionen häufig genug ändern, um bei der Beibehaltung von Tests einen erheblichen Aufwand für ein Projekt zu verursachen. Zeit, die sonst für die Lösung der geschäftlichen Anforderungen aufgewendet werden könnte.
So komme ich jedes Mal zu dem gleichen Schluss. Die Kapitalrendite ist zu niedrig.
Ich habe gelegentlich ein paar Tests eingerichtet, um sicherzustellen, dass ich einen Algorithmus richtig geschrieben habe, wie zum Beispiel die Anzahl der Jahre, die jemand im Unternehmen war, basierend auf dem Einstellungsdatum. Aber vom Standpunkt der Codeabdeckung aus habe ich ungefähr 1% meines Codes abgedeckt.
Würden Sie in meiner Situation immer noch einen Weg finden, Unit-Tests zu einer regelmäßigen Praxis zu machen, oder bin ich berechtigt, diesen Aufwand zu vermeiden?
UPDATE: Einige Dinge über meine Situation, die ich ausgelassen habe: Meine Projekte sind alle Webanwendungen. Um meinen gesamten Code abzudecken, müsste ich automatisierte UI-Tests verwenden, und in diesem Bereich sehe ich immer noch keinen großen Vorteil gegenüber manuellen Tests.