For our software testing to be effective, we need to understand why we test, who does it, what it entails, and when it is done.
As software developers, our testing procedure exists for a few reasons: to help us to find faults and fix them, and to ensure the same faults don't reappear in later versions.
Note that testing can never reveal the absence of faults, only their existence. If your tests don't find any bugs, it doesn't necessarily mean they aren't there; it just means you haven't found them yet.
Testing can only discover the presence of faults. It can't prove the absence of faults. Don't be led into a false sense of security by code that passes a suite of inadequate tests.
Software testing at ...