Ich höre ab und zu mal, dass es Entwickler gibt (geben soll), die nicht testen. Aber kann es das geben?
Meine Hypothese ist, dass **jeder **Entwickler testet - aber halt nicht unbedingt automatisiert.
OK, nehmen wir z.B. an, ich hätte das hier geschrieben und bin mir sicher, dass es funktioniert
int max = Integer.MIN_VALUE;
for (int i = 1, size = array.length; i < size ; i++) {
int current = array**;
if(current > max) max = current;
}
return max;
}
Ok, was macht ein Entwickler, der (angeblich) nicht testet? Der wird diese Funktion, **bestimmt **wenigstens mal
mit ein paar Eingaben füttern, z.B.:
System.out.println(findMax(new int[] {1, 2, 3}));
System.out.println(findMax(new int[] {1, 4, 3}));
System.out.println(findMax(new int[] {7, 2, 3})); // ups, baaam!
}
Ich teste also meinen Code manuell und finde, dass mein Programm Müll macht, wenn das erste Element das größte ist.
Jetzt untersuche ich meinen Code und finde den Fehler und bereinige ihn.
Das ist der Vorgang des manuellen Testen, da ich die main wieder lösche und so keine Regressions-Test habe.
Kann mir irgendjemand bestätigen, dass es Entwickler gibt, die solche [ähnliche] Sachen nicht (wenigstens) manuell testen?
Ich würde nämlich sagen, dass es diese nicht gibt. (Ich meine nicht eine Funktion/Code den jemand 1000x mal schon geschrieben hat und auswendig weiß).
Zudem kommen manuelle Tests schnell an ihre Grenzen.
Ansonsten ist das nicht-verwenden von automatisierten Tests wohl eine eine falsche Einstellung (vgl. Amateur zu professionellem Entwickler => der Profi setzt
Tools ein, während der Amateur eher so vor sich hin entwickelt und sich nie sicher sein kann [nicht 100% das kann auch nicht der Profi], dass seine Software funktioniert).