It is a developers job to ensure that his code does not contain any bugs.The tester's job is to verify that the developer has done his job. If a bug is not caught both have failed.
If a developer throws his code over the cubicle wall as soon as he gets his code to compile their will be a price to pay. The first price with be the testers lack of trust in the developers ability to modify code without introducing new bugs. So the next time the developer comes across code that requires serious refactoring he will hear the tester scream. "If it ain't broke don't touch it".
The developer should view every bug a tester finds as a failure and think about what he could do to ensure that a similar bug does not happen again.