Our philosophy, time versus money applies to your circumstance as well. The more time that is spent on unit testing, the less likely it is that code will contain bugs after it is released. At the same time, the more time your spend unit testing the less profitable the code is.
We take a more cavalier approach. Our programmers test their own code, pass it off to a fellow programmer for testing, and then a final review and unit test is performed by a supervisor. If all three tests pass, the code is stamped complete and is passed on the end users.
Bugs are an inherent part of programming and must be anticipated as inevitable. No amount of testing can truly guarantee that code is 100% bug free.
Some good methods of avoiding writing bugs are found at this site.
http://sites.google.com/site/yacoset/Home/how-to-avoid-writing-bugs