Tuesday, 8 April 2014

Testers should learn to code?

It seems to be the "perceived wisdom" these days that if testers want to have a job in the future, they should learn to write code. Organisations are recruiting "developers in test" rather than testers. Using test automation tools (directly) requires programming skills, so the testers should acquire them, right?

I don't agree, and I think this is a dangerous attitude for testing in general.

Here's a story of two testers:

  • Les has degree in Computer Science, started out in a traditional test team, and now works in a multi-disciplinary agile team. Les is a person who likes to turn a hand to whatever needs doing, and enjoys a technical challenge. Les is very happy to write code, and has recently starting coding for a recently acquired test automation tool, making sure that good programming practices are applied to the testware and test code. Les is very happy as a developer-tester.
  • Fran came into testing through the business. Started out being a user who was more interested in any new release from IT than the other users, so became the “first user”. Got drawn into the user acceptance test group and enjoyed testing – found things that the technical people missed, due to a good business background. With training in testing techniques, Fran became a really good tester, providing great value to the organization. Probably saved them hundreds of thousand pounds a year by advising on new development and testing from a user perspective. Fran never wanted anything to do with code.

What will happen when the CEO hears: “Testers should learn to code”? Les’s job is secure, but what about Fran? I suspect that Fran is already feeling less valued by the organisation and is worried about job security, in spite of having provided a great service for years as an excellent software tester.

So what’s wrong with testers who write code?
  • -       absolutely nothing
  • -       for testers who want to code, who enjoy it, who are good at it
  • -       for testers in agile teams

Why is this a dangerous attitude for testing in general?
  • -       it reads as “all testers should write code” and is taken as that by managers who are looking to get rid of people
  • -       not all testers will be good at it or want to become developers (maybe that's why they went into testing)
  • -       it implies that “the only good tester is one who can write code”
  • -       it devalues testing skills (now want coders, not [good] testers. In fact, if coders can test, why do we need specialist testers anyway?)
  • -       tester-developers may "go native" and be pushed into development, so we lose more testing skills
  • -       it's not right to force good testers out of our industry
So I say, let's stand up for testing skills, and for non-developer testers!


Nishant said...

I am a fresher and working in an organization from 4 months and I have knowledge about manual testing and learning JMeter. Now what should I do with. Means what path should I choose to get a great future and what should I learn?

Nishant said...
This comment has been removed by the author.
Dot Graham said...

Hi Nishant,

Since you are new to testing, it would be a good idea for you to learn at least to read and understand code and be able to write scripting code. Learning JMeter sounds like a good idea too. Perhaps you could experiment with automating some tests using an open source test execution tool.

If you want some help in test execution automation at system level, have a look at TestAutomationPatterns.org - this is a wiki that I have been working on with Seretta Gamba. I hope you will find useful things there!

The market certainly seems to be moving in the direction of wanting testers who can code, so coding skills will be helpful for you (and other people who are just starting out in testing).

And continue to improve your testing skills too!

All the best in your career!

Nishant said...
This comment has been removed by the author.
Matt Wynan said...

Learning the basics of coding would do good for testers, though it shouldn't be a requirement. Testers have raw perspectives, and like what you said, having a user's perspective instead of a developer's can shed a lot of fresh light into development. Anyway, thanks for the great read, Dorothy! All the best to you! :)

Matt Wynan @ Innovative Defense Technologies