Google for JUnit and design unit tests, and then do extensive "business" tests as well. And then you will know that your program is as good as you are currently able to test it for, but some user will STILL find bugs (and you can only hope it isn't a hacker that does it first).
And even if you make something that contains no flaws of its own, it's going to be compiled by a compiler that might have flaws, run on a runtime that has flaws, which exists on an operating system with flaws that runs on hardware with flaws and is used by end users who are definitely flawed.
what he says is: even if your code is perfect, there are always other variables that might be less than perfect, and cause problems.
for instance: a ton of bugs you might get, are just pebkac/pebcak errors.
and how are you going to "detect it is faultless" anyway? Do you have perfect understanding of what it's supposed to do under any and all conditions, expected or otherwise?
And can you describe that knowledge mathematically in such a way that you could create a test that incorporates all those scenarios yet runs in a finite amount of time?
And how are you going to guarantee that that test itself is not flawed?
No, you can't ever get to a state where you can claim your program is faultless, in other words perfect.
At most you can get to a state where you can claim that you've exhausted all reasonable means to asserting that it will run nominally under a given set of conditions, then describe those conditions.