It has become as well proven fact that a tester cannot become a good programmer and a programmer cannot be a good tester. It does not mean that a programmer doesn’t know how to test or he doesn’t have the capability to test the code he has written but testing his code as a tester is not possible for a programmer. There are various reasons given on the reason that why a good programmer is not a good tester in one of the earlier posts. One of the main reason is that a writer cannot be a critic of his own writing. Same goes true for a programmer. Programmer loves what he writes and himself would not love to find out fault in what he has created.
Even when there is a testing done by a programmer/ developer after writing his code, the prime thing in his mind remains that the code has been created by him and that is what holds him going into customer’s shoe and looking at the code from customer’s perspective. Whatever a programmer tests in his code is the technicality of the code. Two important things that he misses to map with his code are – one, the business flow; and two, the usability. At many instances I have discussion with developers on what they have written and what business requirement had been. And on such instances most of them argue to accept it as per the code written and express reservations in changing the code as per business requirement, by giving different reasons.