Testers Wanted, Experience Required

Testing is in a strange state right now. Both large corporations and small start-ups absolutely require testers. The problem is what kind of tester.

If you fall into the trap of thinking that anybody can be a tester, you’ll see the impact in your choices. Similar outcomes would occur if you had the same thoughts about developers. You wouldn’t hire a developer without any experience, why would you do the same for a tester? (The exception to the rule are fresh upstarts who are looking to get their feet wet in the programming world.) Testing is not trivial and should not be treated as such. In this day and age, testers need to know how to program.

The role of testing has evolved along with the other technical jobs that surround it. Testers must evolve with that role. It’s no longer sufficient for a tester to tell me that something is broken; A tester has to tell me why something is broken. Cause, not effect. Programming is necessary in order to follow stack traces and debug code to pinpoint the source of failure. If you can’t code, this is nearly impossible. A few sticking points:

1) Testers must be technical.
Testers must have programming skills, and if they don’t, they must be able to learn and prove they can understand code logic. At the very least, learn enough of the basics so that you can pass a rudimentary and trivial programming test, such as FizzBuzz. A tester that can follow a code path is infinitely more useful than a tester who cannot.

2) Be curious!
Testers are curious by nature. The reason why you find bugs that other people don’t is because you wander off the beaten path and walk on the edge. Explore the code and it’s integration within the final product. Don’t be afraid to fail. Testers who stick within the confines of what’s known will only find answers that have already been found. Be risky.

3) There are no free passes.
Testing is not data entry. Testing should not include attributes such as manual labor or repetitive tasks. You actually require a brain to test code. You need to have an intimate knowledge of your testing tools, sometimes even programming your own if the proper tool doesn’t exist. Testing requires as much rigor as programming these days, since technology and libraries are advancing so rapidly. Take mobile browsing, for example. Five years ago, did anybody think that mobile browsing would make up almost 10% of all Internet traffic? In response, Sauce Labs’ Jason Huggins (@hugs) actually created a tool to address this problem (http://bitbeam.org)

In short, testers need experience. They need technical skills and they must be held to the same standards as developers. Testers must possess a cat-like curiosity in order to explore code, adapt to new technologies, and develop themselves further as testers. By building these skills, testers can offer more to their development teams, and can break the negative stigma of why testing is unimportant.

Secrets of a Buccaneer-Scholar : James Marcus Bach (@jamesmarcusbach)
The Importance of FizzBuzz : Jeff Atwood (@codinghorror)

Posted on May 23rd, 2012 by Dan