Why Testers Should Code

 
Technical Testers
 

Although there's been a gravitational shift towards testers who can code in the industry, there's still some companies that struggle to understand the need to skill up this particular area of their workforce. Their logic does have some merit.

Testers are meant to act as USERS. If they code they'll stop thinking like users. Even worse, they'll start reporting bugs that are actually due to their buggy automation, environments or shell scripts and wasting development's time.

Unfortunately what is a bigger waste of time is manually testing an entire regression suite. Or IT Operations regularly resetting a complex 'as live' environment so it can be used for another cycle of testing. And what's even worse for the quality of the product is NOT regression testing an entire regression suite because of a lack of time or manual testers.

Manual testing will always catch more bugs than automated tests. 'As live' environments will always catch any environmental issues before it goes live. However no software development lifecycle will ever be able to absorb the kind of hit to timescales it takes to manually run a full regression suite on each release candidate, or run a production-like environment for Agile testing.

That's before we even get to how long Performance, Security or Availability (ITSCM) testing can take. All these should be fitted slickly into your Continuous Integration SDLC.

Testers need to be able to understand how to spin up virtual environments on a Linux box to test a new feature or retest a bug. They need to be able to automate their regression packs. They need to be able to integrate non-functional testing into your CI.

Some element of manual testing will always be needed to ensure that user experience is as smooth as possible, but if you want to deliver a quality product AND meet customer deadlines, then skill up your testers. Now!