Egyértelműen nem. Hiába a programozó legjobb szándéka, egy viszonylag egyszerű
alkalmazásnál is olyan nagy lehet az állapottér, amiben a program dolgozik, hogy
esélytelen minden esetet lefedő tesztelést/fejlesztést végezni, erre egyszerűen
nincs idő. Mindezt úgy, hogy könyvtárakban, virtuális gépekben (jvm, etc.), illetve
operációs rendszerek helyes működésében bízunk, felvállalva, hogy az ezen rendszerek
frissítése (amire fejlesztőként nincs kihatásunk) nem hoz be esetlegesen olyan hibát,
ami a mi termékünket kompromitálja.
Gondoljatok bele, milyen szintű defenzív programozás kellene ahhoz,
hogy az adott rendszer minden egyes hibáját kezeljük? Éppen ezért minden programban
általában sok bug, vagy esetleg hiányosság van, amit józan ésszel elvárhatunk, hogy
a fő lefutások az elvárásoknak megfelelően működjenek.
Van természetesen lehetőség arra, hogy matematikailag bizonyítottan helyes programot
írjunk, azonban ezt kb. senki nem tudná megfizetni.