Normalerweise ist es doch so, das der Entwickler nur grob seine eigene Anwedung testen kann/sollte, da nur ein Aussenstehender das Programm so bedienen kann, wie es der Entwickler nie machen würde. Deshalb hat der Entwickler besondere Sorgfalt in der Auswahl und Implementierung der Programmfunktionen walten zu lassen

.
Manchmal findet man keine Zeit dazu oder es fehlt einfach die Erfahrung und das Gespür wo etwas falsch sein könnte.
Meiner Meinung nach treten nur in wenigen Fällen Fehler auf, die etwas mit der Hardware oder installierten Software direkt zu tun haben.