Recently I heard of a company who is downsizing their test department because their developers are going to start unit testing. There are a bunch of reasons why this could be exactly the wrong thing to do. There are also a bunch of reasons why it could work very well.
If the testers spend all of their time doing basic checklist testing, then the unit tests developers will now be writing could indeed find all the same defects the testers find today. Dumping the testers may not have any perceivable impact on the product’s quality.
If the testers never find any bugs other than those basic checklist bugs, though, I would say they are not being effective. Testers tend to find bugs in places where they aren’t looking. I might even go so far as to say that someone who never finds bugs in places where they aren’t looking is not really testing. Getting rid of testers because developers will now be writing and executing the tests those testers used to execute likely means some bugs will now go unfound.
I don’t know what percentage of the testing group is being let go. The larger the number of RIFd testers the more likely issues will be missed.
Unless the now-defunct testers are moving over to be developers. Testers who become developers tend to retain at least *some* of their tester-think. This can be an effective way to increase the amount of test-related thinking and doing a development organization does.
Assuming some testers will still be around after the pink slips arrive, what they do will probably have an impact on the impact losing the other testers has. If the remainders already spend their time doing scenario testing and end-to-end testing and system testing, product quality may not change one whit. If the chosen ones had been slogging through basic checklist testing, and now they instead do scenario testing and end-to-end testing and system testing, product quality may actually increase as the testers now find the integration and workflow and scenario problems which had previously been escaping out to customers.
If the developers will be practicing Test Driven Design|Development, the unit tests are likely to be effective. If developers’ unit tests are reviewed by testers, the unit tests are likely to be effective. If the developers ask their testers to assist them in brainstorming unit tests, the unit tests are likely to be effective. If the developers pair program|pair test with their testers, the unit tests are likely to be effective.
Isn’t it interesting how It All Depends? <g/>
*** Want a fun job on a great team? I need a tester! Interested? Let’s talk: Michael dot J dot Hunter at microsoft dot com. Great testing and coding skills required.