Should testers know how to code?

While at CAST2012 this week, I quoted something on twitter that Adam Goucher said in his conference opening session.

This is the last generation of testers that don’t know how to code

Obviously, commenting on the future of testers whilst at a testing conference opened up a (mostly) good natured discussion on the topic. This came up again during Elizabeth Hendrickson’s keynote so clearly I wasn’t the only one thinking about this.

After a few days to absorb the various counterpoints to this viewpoint, I’ve come to the conclusion that I still do think it is the last generation of testers that don’t know how to code. However, I think it’s also the last generation of milkmen, postmen, bartenders & lawyers that don’t know how to code too.

I believe that this internet thing is going to be HUGE, once it takes off and more than just the rich & elite have an email address, facebook / twitter accounts or web enabled mobile devices it’s only a matter of time until kids get taught basic coding skills at elementary school (if they’re not already) so naturally the next generation of testers will know how to code.

Of course, knowing how to code is not the same as being good at coding but that’s another story. It’s also not the same as coding on a daily basis in your day job. It’s also not the same as being expected to push any product code to production while working as a “tester”. However, for the sake of argument let’s assume that most good, skilled and conscientious testers would probably take the time to make some effort to ensure they have some idea of what they are doing before introducing this into their work environment.

Testing is a difficult job, make no mistake about that and I do not think that test automation will ever remove the need for manual testing. However, there are certain mundane, repetitive tasks (such as regression testing / checking) commonly owned by testers that should be automated and doing so will free up more time for manual testing.

I also think that good, skilled testers are intelligent and adaptable people that should not feel threatened by test automation, as learning one new skill will not push two existing skills out of their brain.

Learning to code will not stop you from being an effective manual tester, I think it will actually make all testers better at manual testing as the process of learning a little bit about how the products of the industry we work in are made will make us more effective at testing.

Talking / listening to developers in a language they can understand, writing concise bug reports that get the message across quickly but without prejudice and most importantly correcting the common attitude misalignment amongst some testers about “how could that lazy / incompetent / sloppy developer make such a simple (in your mind) mistake” has got to be a good thing.

Time to evolve.