Ich schlage vor, eine vollständige Testsuite in Bereichen zu schreiben, in denen dies sinnvoll und praktisch ist. In weniger praktischen Bereichen schreiben Sie Plausibilitätsprüfungen.
Nach meiner Erfahrung lohnt sich der Aufwand für einen vollständigen Satz von Testfällen in den meisten Fällen sicherlich, aber realistische Codeabdeckung hat eine abnehmende Rendite. Irgendwann macht es einfach keinen Sinn, mehr Tests zu schreiben, um die Codeabdeckung zu erhöhen.
Abhängig von Ihrer Sprache / Technologie ist das Testen der Benutzeroberfläche beispielsweise möglicherweise nicht praktikabel oder sogar machbar. Viele Tests hängen wahrscheinlich davon ab, was ein Benutzer sieht und was nicht automatisiert werden kann. Wie würden Sie testen, ob eine Methode zum Generieren eines Captchas ein Bild erzeugt, das beispielsweise von einem Menschen gelesen werden kann?
Wenn das Schreiben einer vollständigen Testreihe drei Tage in Anspruch nimmt, ist die Wahrscheinlichkeit, dass ein Fehler in dieser Komponente im Verlauf des Tracks auftritt, sehr gering, und das Schreiben der Funktion selbst dauert nur eine halbe Stunde. Sie sollten sich wahrscheinlich Gedanken machen darüber, ob sich diese Zeit lohnt. Vielleicht würde es schon Sinn machen, eine grundlegende Sicherheitsüberprüfung für diese Funktion durchzuführen?
Mein allgemeiner Rat wäre, dass Sie Komponenten vollständig testen sollten, wenn Tests relativ einfach geschrieben werden können. Wenn es sich jedoch um einen Bereich handelt, der nur sehr schwer zu testen ist, ziehen Sie eine Linie in den Sand und schreiben Sie Tests, die den Bereich auf einer höheren Ebene testen, anstatt ihn vollständig zu testen.
Schreiben Sie im vorherigen Captcha-Beispiel möglicherweise Tests, bei denen überprüft wird, ob ein Bild mit der richtigen Größe und dem richtigen Format zurückgegeben wurde und keine Ausnahmen ausgelöst wurden. Das gibt Ihnen ein gewisses Maß an Sicherheit, ohne über Bord zu gehen.