Props to @Zsolt for a very good answer. However this is a plan for the future, not a response to the situation in which you find yourself.
I believe that the relationship between coder and tester should not be adversarial - they're both partners in trying to produce finished code of a known quality. I want accurate measurements of code quality, and I want code that will threaten the business pulled back. Code with flaws that don't threaten the business is just technical debt.
My time as a tester was very brief, but I think there are two advantages to independent testing. First, an independent tester is less likely to share assumptions about the code. IF the coder tests the code, it is very difficult to detect the assumptions. For example, I currently confront a situation where the coder assumed that all names were Firstname, Lastname, and that the combination {Firstname, Lastname} was relatively unique. The truth is that there are many many exceptions to that rule. (All the women in my family have the same firstname, and 2/3rd of them have the same lastname. All have more than four names each - First, Middle, Middle, Middle, Last). Independent testers are less likely to have the same assumption. (in this case I think the error would have slipped by the tester as well). Frequently I find that the coder included instructions or directions that are .... incomplete... When I write prose, I always ask a colleague to review it for the same reason - it is likely to reveal invalid assumptions I've made.
Second there is the two mind problem. Study after study reveals that diverse teams are better teams, not because they fulfill some administrative diversity goal, but because diverse minds working on a problem are more effective at solving the problem. Mea culpa for not citing any of those studies
If the coder and developer are the same person, then the team is about a homogenous as it is possible to get. Psychologically people tend to take the stance of "loyal opposition" even when working collaboratively (especially when they have separate roles - coder and tester). They know that they can improve the quality of the project by intentionally distancing themself from the partner and introducing artificial diversity.
edited in response to a comment by @David Espina
The relationship between coder and tester shouldn't be agnostic; if the relationship is agnostic, that indicates something has gone seriously wrong. If QC is ruining code, then the manager of the QC department needs to have a serious talk with the business manager/sponsor/whatever. QC's goal is to detect unacceptable technical debt. If QC strives for perfect code, then QC is working for your competitors. sorry for the digression, but I think it is important in context.