1

A typical job-post for a testing position:

Requirements:

Programming experience with Java, Python, VB or C#
Ability to write test cases and work with test-automation
Database knowledge
Experience in leading automation tools like QTP, Selenium, Ranorex

My question is, why do so many (nearly 90%) job lists post programming as a requirement? This is a testing position, not a programming position. I am very confused about his. Can someone explain this?

closed as primarily opinion-based by Bharat Mane, IAmMilinPatel, ECiurleo, Michael Durrant, Chris Kenst Mar 31 '17 at 15:17

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

3

Most automated testing frameworks require the user to either write in scripting language or in an actual programming language. Thus test automation equals writing code to run tests against the application. Maybe some frameworks work fully with recording the tests, but experience learns that recorded tests are harder to maintain.

As an automated test engineer I would also excepted you to have a basic understanding of development patterns, such as DRY. In order to keep the test automation maintainable and clean, patterns as the page object model can be used.

  • Aha, so they want me to write automation code on selenium using JAVA? OK! Then I understand. Thank you for the page object model link. It is a very good pattern. – Sishuan Lee Mar 2 '15 at 17:43
  • Selenium is a web applications framework, which needs a programming language to drive it. Java is one of the most used, but it supports most programming languages out there, including others like C#, JavaScript, Python and Ruby. You could use Selenium Builder and record a test and then generate the code for it. See sebuilder.github.io/se-builder – Niels van Reijmersdal Mar 2 '15 at 17:45
  • Now I understand, thank you. I was confused. I thought they wanted me to write production code. Thanks for clearing it up for me. – Sishuan Lee Mar 2 '15 at 17:51
  • The specific example also lists QTP and Ranorex in addition to Selenium . . . QTP is VBScript, while Ranorex is .NET/C#, so lots of scripting/programming expectations, as most test automation positions would entail. – ernie Mar 2 '15 at 23:21
2

A typical job-post for a testing position.

This job description seems to be describing someone who has more programmatic and automation experience than someone with testing experience. That's not to say the best person for this job won't have both, but the JD seems to focus on desired automation skills.

I can't comment on this being "typical" of job descriptions, nor can I comment on what this particular company wants from this person. I can speculate as to why job descriptions might go this way:

My question is, why do so many (nearly 90%) job lists post programming as a requirement? This is a testing position, not a programming position.

What do you think testing is?

I think testing is a skilled, technical investigation designed to reveal information about a product or service under test. By technical I mean it involves the use of technology.

This means testers need to be skilled and effective technical investigators. In order to investigate technology we may need to understand how it works from many different approaches including but not limited to black box and white box (where we understand the internal code). In order to be effective we need to deal with the growing and complex nature of software and so I think the future dictates testers understand and work with technology in a programmatic way.

  • Yes, I understand now. Just like Niels said, it is to write automation code using Java and Selenium, to create frameworks. Or any other tool like QTP, which requieres programming (in this case VBscript) and no record playback. – Sishuan Lee Mar 3 '15 at 16:04
  • 1
    It's also about creating custom solutions to the custom problems you have. Not every testing problem will be addressable by a vendor tool. – Chris Kenst Mar 3 '15 at 17:53
1

My question is, why do so many (nearly 90%) job lists post programming as a requirement?

Without speaking to every job poster, this question is not answerable. I would guess that it's because test automation is more in vogue than manual testing, based on my on experiences of testing scalability.

I can only assume others have come to the same conclusion as I have that the cycle of hiring manual testers and then outsourcing their jobs isn't as productive as hiring automation testers in the first place.

This is a testing position, not a programming position.

Based on the job requirements, this statement seems false. If someone asks for programming skills, then it's at least partially a programming position. Otherwise who is defining the position if not the organization seeking to fill it?

I am very confused about his. Can someone explain this?

In a nutshell: the job market is fickle. You'll see the same thing in other fields with things like DevOps changing the expectations of preexisting roles. Things change. It's tough but true.

On the plus side, automation testers tend to make much better salaries than manual testers and the resources for learning are everywhere.

It's a great time to be a QA if you want to dive in and get into automation.

  • Yes, I understand now. Just like Niels said, it is to write automation code using Java and Selenium, to create frameworks. Or any other tool like QTP, which requieres programming (in this case VBscript) and no record playback. – Sishuan Lee Mar 3 '15 at 16:04
1

Position is test automation, not manual testing. So obviously programming is required.

You will NOT be developing production code, but automated test. You need different skill set from a developer, use different tools for different goals, use different design patterns, need different communication skills, because you will encounter different problems than core developers do.

Even if your text is copied from job ad, it does not mean that HR/recruiter who posted the ad has full understanding what job all about. They were given keywords by hiring manager, and they slapped them together to get ad. It is your work as skilled professional to understand your job, understand how skills might be misrepresented in job ad, and present your skills TO THEM (gatekeepers who might have little clue about how job is performed in real life) in a way they will realize your skills are relevant, so they will pass your resume to hiring manager.

You cannot expect recruiters, or HR representatives, to be fully knowledgeable about all details of the job. Read every detail, and try to get insight from other professionals in the area, or even better, company insiders. Quite often internal or vague terminology is used in job posting. Best recruiters know that, and know what hiring manager wants (info not mentioned in beyond job posting), because they know company or hiring manager, possibly even worked with him on hiring other candidates, or had some candidates for job rejected. As always, not all recruiters are best.

Yes, in ideal world it would be different - but we do not live in ideal world, AFAICT.

  • First of all, there is no such division anymore. This was copied from a testing job ad. What should I program? Production code? Then this position is developer, not test automation. – Sishuan Lee Mar 2 '15 at 17:07
  • Yes, I understand now. Just like Niels said, it is to write automation code using Java and Selenium, to create frameworks. Or any other tool like QTP, which requieres programming (in this case VBscript) and no record playback. – Sishuan Lee Mar 3 '15 at 16:04
1

This looks like a position description for automated testing, which means writing automation code to run tests against the company's software.

It's possible in your area there's a bigger emphasis on automation than I'm accustomed to, along with the understanding that good test automation requires programming skill. This is a good thing, especially if, as you say, 90% of position descriptions have this kind of requirement.

As other posters have said, the main purpose of any testing position is to test software. This requires technical skills even if there is no automation or programming involved - if you can read code you can trace logic and give more information to developers than simply "this screen doesn't display the correct information".

With database skills, you can do things like step through a transaction and work out exactly where it's going wrong, or whether a problem is caused by bad data (or the application is expecting a different type of data than the database is supplying).

With programming skills, you can write code that will run defined tests - these won't be all the tests you perform, but they will allow you to know that nothing has broken that particular function. You can also write code to pump a lot of transactions through a system, or code to generate data, or code to archive application log files so you don't end up with a log file that's 2 GB of text and takes forever to load when you need to find what went wrong (I've done all these things).

  • Yes, I understand now. Just like Niels said, it is to write automation code using Java and Selenium, to create frameworks. Or any other tool like QTP, which requieres programming (in this case VBscript) and no record playback. – Sishuan Lee Mar 3 '15 at 16:04
  • Nice addition the extra value having programming skills brings. Also being able to program brings a certain way of logical thinking. – Niels van Reijmersdal Mar 3 '15 at 18:02

Not the answer you're looking for? Browse other questions tagged or ask your own question.