To dwa poziomy testowania przecież.
Programiści mogą sobie napisać unit testy, ale nie zastąpi to przeklikania. I to też nie tylko przez programistę, ale też przez prawdziwego człowieka, użytkownika. Ogólnie software jest najmocniej testowany na produkcji przez użytkowników końcowych.
Nie znaczy to, że pisanie testów jest niepotrzebne, po prostu testy "pisane" sprawdzają, czy system działa, tak jak ma działać.
I to jest ważne (żeby wiedzieć, czy dobrze robimy, czy nie ma regresji itp.), jednak problem w tym, że to nie wystarczy. Użytkownicy potrafią zepsuć każdy system, bo użytkownik nie wie, jak system ma działać wg autorów. Jest taki dowcip:
https://twitter.com/brenankeller/status/1068615953989087232?lang=en
Dobry programista potrafi sprawdzić, czy kod, który dodał, nie psuje niczego w systemie.
Nawet jeśli, to czemu programista ma tracić czas na to, skoro można napisać i samo będzie się sprawdzało.
Swoją drogą to zdanie typu "dobry chirurg nie musi myć rąk, zakładać rękawiczek itp., bo będzie potrafił tak operować, żeby niczego nie dotknąć"...