Mike Clark writes about tearing down the barriers between testers and developers. I’m all for that, but I’m not convinced that abolishing the terms “QA” and “tester” is the right approach.
At my current job, one of the resons I was hired was to get a test driven mindset into the development community. One of the things I had to do was to make sure that the testers did not feel threatened by this push. I’ve gotten to know the testers and have begun reading articles and blogs from testers. I believe there are important differences in the skills and mindsets of good testers and developers, and I want to mine that before the distinctions of the titles are taken into question.
Test Driven Development is primarily a design tool, and secondarily a verification tool — and even as a verification tool it is woefully incomplete. It focuses only on the small scale. Testers focus on the verification angle — the design is secondary to their task. They’re looking mostly at a functional or system level of granularity, and this is much closer to the level the users are going to judge the quality of the software from.
Our lead tester told me the other day that she comes from a programming background, but ssshhh…. don’t tell anyone because she hates doing it. I replied that I don’t have the tolerance of detail that she has and would hate being a tester, but that I have great respect for the job they do. I still don’t have a complete picture in my mind if what the fundamental difference is. Programming certainly requires attention to detail, but it is different somehow. I’m going to be exploring this more in upcoming blog entries and try to understand what and how we can learn from each other to further our common goal of better software.