I don’t believe in having developers doing code only. They has to test it too and not just automatic test, no also manual testing is really delivering value to the product.
Already 10 years ago working with mainframe technology I learned that testing your own code is an absolute minimum of testing and testing starts here. It took me just about 10 sec. to stop a test session because I simple could make the application fail badly so we had to stop and reset everything. So after a lot of wasted time we sat up a check list of elements that should be tested by the developer by them self like what happens if you put invalid data in the input fields and so on.
Today I have had a lot of experiences with Test-departments, testers, but what still works best is when developers that are taking an active role of being the tester of their own code (taking responsibility). It is also supported by the study than state early failing is the cheapest type for failure.
Once the developer has tested their own code (read: Three reasons for me, as a developer, to love Developer exploratory testing by Ester Ytterbrink) I believe the next step is the Story pair review. Here your Pair buddy will do a review of the work that is done this review will include a function review, test review and a code review in that order. Also Sigge Birgisson from Jayway is writing and having talks about this topic at different conferences like at the Agile 2012. Here is his presentation in PDF for download.
I tried this already back in 2009 and Yes the developers really complained I even had on developer that resigned after telling me that he was not a tester and didn’t what to do that kind of work! After a short while 70% of the developers did see the advantages of them testing their own code and letting their pair buddy test their code. about 30% did not find it reasonable and just tried to get past this process the easiest way.
So maybe this is the same as not everybody is ready for adapting new processes right a way. Studies tells the 1/3 are ready to try any new things right away, 1/3 will be “I hear what you say, but…..” within some time they will adapt to this new process if there is reasonable arguments, but the challenge to any transformation is the people that are not adapting and don’t want to. These people are making the adaption slower and maybe the ones you want to get out of the way until you have implemented this Developer Exploratory testing (DET).
Now in november 2013 I read in a article that Microsoft had had time getting testers to their Microsoft center in Denmark (Vedbæk). Intill now the developers didn’t do testing but they change the roles and included the tester role to be a part of being a developer and that was a success.