My point, generally speaking, is that whether the testing is done by the programmer or by someone else the software is released anyway without giving the programmers a chance to thoroughly test or repair it. Programmers are employees and usually do what they're told to do. If they defy management to often they are deemed as a "problem employee" and reassigned or replaced.
EDIT: Of course if the programmer is a manager or owner of the company that brings up a whole new point of view.