Uncharted Waters

Jul 18 2016   8:05AM GMT

Do Testers Need to Code

Justin Rohrman Justin Rohrman Profile: Justin Rohrman

Tags:
Programming
Quality Assurance Careers
Software testing

The question of ‘do testers need to code’ is a little tired at this point. Alberto Savoia’s opening keynote for GTAC 2011 titled Test is Dead made a clear prediction of what he viewed was the future of testing. Elisabeth Hendrickson wrote this piece in 2010 based on data from job advertisements, not about the question of whether or not testers should code or not, but about what the market is demanding.

My opinion for a long time was that testers do not need to know how to program to be hired, or to be effective in their work. That was based on my experiences in the software industry from 2005 till today. My opinion is starting to change, but that isn’t because of dark foreboding keynotes or data from job advertisements. Most job advertisements are bad descriptions of what happens when someone gets to the keyboard.

So, I think that testers do need to learn some programming skills now. Let me tell you why.


Low Hanging Fruit

There is a shift happening in how software is made. People do this weird thing now that wasn’t very popular not too long ago, they talk. This isn’t everywhere of course, there is a spectrum, but most companies are trending toward much more collaborative styles of work.

One team at the last company I worked for had a good groove. The programmer, product manager, and I would get together before a new code change was made.  We talked through the change in terms of examples; what happens when a long string is entered, how many decimal places should be allowed. This is basically what you see in groups that do BDD, but we didn’t create any of the usual cucumber code along with those examples.

Do_Testers_Need_to_Code

The biggest difference was that the normal low-hanging fruit for software testers — buffer overflows, errors from submitting null values, errors from submitting bad data — were not entirely gone, but much smaller. Testing that might take days normally only took hours because so many of the questions surrounding new code were sorted out up front before the code was written instead of leaving them to discover later.

None of the other teams at that company got into the collaborative groove. I’m not sure whether that was because the people on the teams never clicked, or because the skill set was missing, but the result was plenty of the normal work testers see.

My new feeling is that testers need to learn to program, or at least become more technical –write SQL, use developer tools effectively, read code — for any sort of longevity in the field. A company that has 5 testers on staff might only need one or two non-technical, non-programming testers when the problems normally found in a test build are collaborated out of existence before before code is submitted to a repository.

The easy refutation here is that there are still plenty of companies that aren’t working together to solve the easy code problems before code exists, and aren’t ready to create the build infrastructure you usually see in collaborative companies. And, you might be right, there are still plenty of companies like that. If you take a look at the east and west coast though, you’ll see more companies where teams work as one, and they are slowly creeping toward the center.

So my feeling now, is that if someone is interesting in testing and software quality, and wants to stick in the industry for the next ten years, they should learn how to program. If my prediction is wrong and the low-hanging fruit bugs stick around, even when teams work through examples up front and spend time creating build infrastructure, then you have still probably improved your social standing on the team and your paycheck.

2  Comments on this Post

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when other members comment.
  • Kevin Beaver
    Good article, Justin. I think development/coding experience can help tremendously...in any IT role, especially testing. It has helped me numerous ways throughout my IT/information security career - almost on a daily basis.
    23,285 pointsBadges:
    report
  • CharlieBrowne

    I share some of the same thoughts as Kevin.

    One point I would like to make is when the testing involves an interactive process, have the "dumb" user doing the testing can be very helpful. They do the unexpected and this can uncover some bugs that you want fixed before you go into production with your project.

    62,280 pointsBadges:
    report

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to:

Share this item with your network: