Discuss - Software Testing Shouldn’t Require Expert Coding Skills

So, what do you think about this article? We can use this forum post to talk around ideas of the article.

2 Likes

I heartily agree with this article!

I’m very much in the camp where I can write SQL queries to find and amend data I need, but I don’t want to learn more and be a mediocre developer who spends time creating, maintaining and running automated checks, when I’d rather get my hands dirty and explore.

I know where I work, automation is something we are pushing massively, and to the management if you don’t want to be a manager, then you have to learn how to create automated scripts, be able to create performance tests, or some other highly technical skill. Being able to explore, teach others testings techniques, and act as a knowledge base isn’t enough to be more than a humble tester.

Automation is useful, we just need to remember that it shouldn;t be forced onto those who don’t want to learn it, as otherwise you could end up losing a great tester from your company, or they could change jobs and we lose them from the community entirely.

3 Likes

I really enjoyed this article too. I always felt I wasnt able to reach the higher echelons of software testing as I didnt have the coding aspect. I have recently started to learn some code, but from reading the article it has made me aware that although I may not be an ace coder there are other technical aspects to my testing that are enhancing quality too.

1 Like

IMO your list of other important skills are THE important skills. I’d agree that some experience with coding is beneficial. This can be viewed as similar to a student doctor having to perform dissections. It helps in understanding problems later. There is also much benefit, as you say, in using tools to accelerate or simplify repetitive or error-prone tasks, as well as automation in the full sense. But that’s an ancillary activity, not core to testing. Job ads that make coding skills a must-have would be a real danger sign to me. It’s a surrogate measure for an organisation that doesn’t know how to assess testing skill, so measures something else instead. It’s like assessing programmers on how many words per minute they can type.

3 Likes

I’m pretty much an automation geek. One who believes that automation’s role is to reduce overhead (the dreaded regression cycle) so that humans have more time to do what they are good at. Thinking. Exploring. Investigating. I’m not a fan of the idea of eliminating manual testing

In the U.S., there are alot of people in the QA profession that could probably stand to strengthen their technical skills. Your list is excellent, and I’ll likely link to this article.

For those who are interested in learning automation, but without having to learn a bunch of code, I might suggest looking at RobotFramework (http://robotframework.org/). It’s an open source framework that can drive a number of technologies (Selenium, appium, interacting with DBs, test data generation, etc). What’s great about it is that their are extensive pre-built keywords that allow you to interact with applications without knowing a great deal of coding. For those that do code, you can write your own keywords to extend it.

One of things I really like about this tool is teaching new people automation theory using it. We can focus on how to write maintainable, extensible, reusable tests, rather than on a specific programming language. An expert in Java can still write bad automation if they don’t understand the theory first.

I think it’s important to keep in mind that yes, while expert coding skills aren’t required to do testing, there is so much that can be said for even the most basic of scripting and automation in terms of saving time. Running the same regression suite a dozen times a week would drive me insane if there weren’t some way to get through it a bit faster.

It’s also a good way to “get inside the head” of a developer. You don’t have to fully understand all the syntax required to write your own application, but knowing the ins and outs of while-do loops, for example, can be immensely valuable. So, I agree in part.

I would never want anyone to think of coding as an insurmountable obstacle to being a fantastic tester, but at the same time, I would seriously urge anyone to at least give it a shot. It’s a skill that seems daunting to many at first, but can be a lifesaver in the end.

I don’t think you have to choose between exploring and developing coding skills. I work with people who are excellent explorers, and who also write code. You can explore by coding too. You don’t have to have super hot coding skills to start using them to explore.

So, what do you think about this article?

I’ve got a similar way of thinking.
But after all I don’t see why our opinions matter much.
Nothing changed for the better, during the past years, it is all going into the same direction:
1 all-in-one tester per product

  • the tester is expected to do everything and know everything
  • with very good coding experience,
  • very large knowledge of automation implementations
  • experience to buy & use tools to do any kind of testing a project needs
  • all around testing expert : mobile/web/api/security/performance/usability/exploratory/unit/modules integration…
  • all around testing integrator expert : scripting, tooling, CI, CD, automation, test management tools, reporting, metrics…

It is the market going in that direction and we’re not in front steering it. It’s the people that understand less and less testing that are steering the boat.

If this is right that a software tester should be expert in coding then the common question that arises in my mind is, what does the developer do? The answer to above query is, not actually. A software tester should not require to have coding skills that too expert level.

If we talk about functional QA engineer in QA testing company, the role of a software tester is to test the application and coding is nowhere required. The tester simply provide various inputs and verify the output of any application. On the other hand, coding knowledge is required in automation testing. Again expert coding skills are not compulsory.

Moreover, it would be an add-on advantage if any tester learn coding also but still not mandatory. Most of the time a software tester is required to perform functional, non-functional testing. With coding knowledge a tester can rise up their career and fetch a good hike in their salary as well. For professional growth, a tester should keep on learning new technologies and it could be coding also. Depending upon personal interests they can enhance their skill sets.

I am sure above information would be conclusion to your discussion.

I feel that testers should have at least basic coding skills, if not expert level. Coding skills will enable you to do your job more effectively and even allow you to do different kinds of testing. Maybe a few companies might excuse a lack of coding skills (or beginner level coding skills) if you are an exceptionally intelligent & good tester.

But most companies/jobs don’t say that they are looking for “exceptional” testers and that coding is not necessary. So how would such a tester find such companies/jobs ?

If you are an expert in testing and are working in a field which is hard to get into (maybe AI, self driving vehicles, medical devices ?), then you could get away with simply not wanting to code. But IMO, if you work in a field which is easier to get into and hence has a lot of competition, then you’ll have to be an expert coder to get hired easily.

1 Like