Der weitaus größte Teil der von @1unitedpower vorgelegten Überlegungen mag zudem sinnvoll sein, wenn ein großes Programm von mehreren geschrieben wird - das als "einzig richtig" vorgestellte Vorgehen wird aber genau dann immer unsinniger wenn das Programm wie vorliegend ein kleines Skript ist. Und zwar weil dieses Vorgehen selbst zu einer dann nicht unwesentlichen Vermehrung des Codes führt - und zwar ohne jeden Gewinn an Übersichtlichkeit und Sicherheit, auf Grund der Codevermehrung erhöht sich dann sogar die Wahrscheinlichkeit von Fehlern.
Das ist wie wenn man ein jpeg zippt: Dar Ergebnis ist nicht kleiner, sondern größer. Hauptsache die Daten wurden komprimiert.
Das Unit-Tests - wie von mir behauptet - nur so viel taugen wie deren Anwendung kann man ja an der Diskussion über Wurzeln und Quadrate sehr schön sehen: @1unitedpower will als Wurzel alle Zahlen ermitteln, deren Quadrat zur Ausgangszahl führt - als Wurzel definiert ist tatsächlich nur die nicht negative.
Auf deutsch: Sein Unit-Test schlägt fehl, weil er falsch definiert ist: -2 ist eben keine gültige Wurzel von 4.
Wenn also erfolgreiche Unit-Tests nicht per die Sicherheit eines Programms begründen können, dann kann deren Absence nicht als Begründung für die Behauptung herhalten, dieses habe Sicherheitsmängel. Das ist so falsch wie es nur falsch sein kann. Zumal diese gerade auch wieder nur dann sinnvoll werden, wenn ein ausreichend großes Programm von mehreren geschrieben wird. Was hier nicht vorliegt.