Nervously looking at job posts, automation and programming is no longer "good-to-have". It is almost a must.

I'm a manual tester looking to start working towards automated testing/test automation. I am completely overwhelmed as far as where to start. I tried doing a quick Google search, to no avail.

What programming languages do I need to be familiar with? What tools? And just out of curiosity, what's popular in the job market? For anyone who started in manual testing and is now an automated tester, what were some of the challenges?

Any advice, words of wisdom, or links to other articles is welcome.

Location, technologies, prior programming knowledge:

1. Europe
2. Web and mobile-application
3. Basic knowledge in Java

My plan to become an automation tester:

> Learn Selenium using Java & TestNG. Learn QTP using VBScript,
> JMeter, LoadRunner for performance testing.
  • 2
    My primary recommendation for getting started would be doing code reviews on the software you are already testing in order to learn how your development team writes their code. Learn to code by reviewing theirs and asking them what they did and why. Also, if you can, set up an IDE and step through their code with a debugger.
    – Paul Muir
    Commented Sep 3, 2015 at 22:13
  • This webinar on 8 mistakes companies can avoid to make a smoother CI/CD transformation touches on the roles of testers and the future of test automation: hubs.ly/H0f7Vbw0
    – francis
    Commented Oct 16, 2018 at 5:13

9 Answers 9


After some good experience in manual testing , It is always good to move for automation.

Please start with following tools for automation testing :

1 - Selenium web driver

Selenium support many programming languages like Java , c# , Python and some others also. It will help you to do automation testing for functionalists. For ex: Login , Register in website.

2 - Jmeter for Performance testing

Using Jmeter you can do performance testing of applications. For ex: Load testing.

Some good tutorials links :

1 - Learn selenium web driver

2 - Learn Jmeter

There are other lots of tools are available in market for automation. But it depends on your requirements that how and what you want automate.

As per my experience above 2 tools are very popular , open source and helpful for automation testing.

Now If we talk about challenges , then it is always there for any thing which you are going to try first time. But it can be learn easily if you understand how tools work and how you should use it as per your requirements.

  • Thank you for your advice. I updated my question, what do you think of my plans?
    – Kharbora
    Commented Mar 2, 2015 at 10:19
  • Excellent. You can learn QTP if you will like to go for windows application automation. Otherwise selenium is fine. With selenium you can learn TestNG. That would be very good. Load runner and Jmeter both are fine to learn. Load runner is costly where Jmeter is open source. Commented Mar 2, 2015 at 10:23
  • Thank you. Do you work with test-automation yourself?
    – Kharbora
    Commented Mar 2, 2015 at 10:25
  • I regularly work with selenium , test NG & Jmeter. Commented Mar 2, 2015 at 10:30
  • What programming language do you use with selenium?
    – Kharbora
    Commented Mar 2, 2015 at 10:31

What programming language and test automation framework to learn first heavilly depends on a lot of factors like:

  • The market you're trying to find a job at (USA, Europe, Asia)
  • The applications types you want to work with (Desktop, web- or mobile applications)
  • Previous programming experience with one of the languages (if applicable to you)

Getting an answer to those 3 questions above will help you to choose the right direction. There is no silver bullet in this case and you can't simply choose one programming language and one automation framework, learn all the basic stuff and be attractive to any employer on the market.

I would start learning in parallel two things:

  1. One of the popular script programming language (like Python, Groovy, Ruby) in order to get the basics of programming. There are hundreds of useful resources on the internet, where you can find tutorials, documentation and examples of how using the programming language:

  2. One or two of the widely-used test automation framework which is more or less independent (or supports more than one) from any of programming languages. This of course heavily depends on job/project context, but few good candidates are:

As soon as you learn at least basics of those things, you'll be able to understand what you need exactly, and of course you'll also be able to demonsrate some basic skills with test automation.

Additionally I would recommend to be aware of technologies, development frameworks and programming languages you're working with. This will help you to have proper technical background which is very important to every tester, which want to understand how the software actually works.

  • Thank you for your advice. I updated my question, what do you think of my plans?
    – Kharbora
    Commented Mar 2, 2015 at 10:23

As a manual tester you likely don't have the foundation skills yet in place to be a performance tester, independent of tool. Look to the automated functional testing tool path. Here you will need to leverage your refined functional testing skills along with development skills to answer questions related to functional quality. If you want to add an extra "bump" in value, begin timing page loads, looking at the developer tools section of the browser for inappropriately staged resources or missing resources and providing this performance impact information early for fixing earlier (and associated cost savings). After all, it cannot scale to many unless it is first performant for a single user.


First, let me tell you my opinion on your plan:

My plan to become an automation tester:

  • Learn Selenium using Java & TestNG. Learn QTP using VBScript,
  • JMeter, LoadRunner for performance testing.

I would just focus on learning Selenium using Java and JUNIT or TestNG.

If you look at job trends on www.indeed.com, the number of Selenium jobs is just going up compared to the number of QTP jobs .

This applies to the North American market only.

When it comes to test automation for web and mobile apps, Selenium is the number one choice for many reasons.

It is a better investment to learn Selenium than other tools not only for the typical reasons (free, open source, language independence, etc) but also because

  • vendor tools started allowing you to use selenium scripts (example: Test Complete from SmartBear)

  • it will not take long before browser vendors will implement selenium drivers of their own; as soon as the selenium w3c draft becomes official, browser vendors will probably use it and build their own drivers that will be included in the browser

On the other hand, Java is a much better choice than VB Script.

I think that it is probably the best language choice for Selenium as

  • the Selenium WebDriver framework is built in Java

  • most of the WebDriver documentation is available in Java

  • if you need help, most developers know Java or C# (which comes from Java as well)

I agree that it is overwhelming to learn test automation.

You need to know not only what skills to learn but also in what order.

This article should help with a simple process of learning automation from zero: http://test-able.blogspot.com/2015/08/how-to-learn-test-automation-with-selenium.html

Also, since practice makes everything perfect, use this link on how to create your first webdriver project: http://test-able.blogspot.com/2015/08/how-to-create-your-first-selenium-webdriver-project.html

On the second item from the plan (JMETER, LoadRunner), start with JMETER.

Not many companies are using LoadRunner.

If you know Jmeter well, LoadRunner should not be too difficult to learn.

Also, if you learn Selenium and Java first, this will help with getting Jmeter as some of the core technologies are used by both tools:

  • both use xpath
  • both use Java
  • both need html and http knowledge
  • jmeter allows you to add selenium scripts to the load test plan




To become an automation QA Engineer is a process and you are right nowadays it is really difficult to find a job only with manual skills.

My suggestions is to start with grey box testing first. Watch what there is behind a web page,a single page application and mobile apps.

You definitely should start with some proxy tools. To learn to manage your requests and response first. This will give you basic skills how to automate after that.

Such tools are:

1.Charles - payed tool with free trial https://www.charlesproxy.com and/or 2. Fiddler - free proxy tool https://www.telerik.com/download/fiddler

Also you can start with

Selenium IDE and JMeter

You can record your steps easily with Selenium IDE. After that you can continue wit Selenium Web Driver, SOAP UI and etc.

I hope it helps.


There are a huge number of tools, languages and frameworks that can help you do this. There is really no 'best' path as each component will depend on your situation.

My personal recommendation is to consider the Ruby path.

However this is just part of a larger picture for which could be somewhat like the following steps:

Learning test automation basics including selecting web page elements and constructing tests and suites

  • Good tools here are the seleniumIDE - a firefox plugin that I have used professionally in many workplaces. This is despite all the claims that it is only for prototyping, playing around, etc. I would also consider ghostInspector, a newer SAAS tool that easily lets you schedule jobs, take and compare screenshots and other useful functionality. Diving right into programming as well is, imho, too much at once. When you are starting automation these are some good tools to learn some of the automation basics. They are real tools that can be used in your company today.

Learning test automation fundamentals

  • Once you start writing test and test suites with simple tools like the ones mentioned above you will start to encounter several issues:

    • keeping tests concise
    • repeating pieces of code
    • authentication and authorization ('logging in')
    • setup, execute, teardown issues
    • dynamic pages with different ID's every time
    • tests are only running in 1 browser, e.g. Chrome or Firefox
  • To start to address the above issues you should learn a bit about the theory behind such testing. I recommend Agile Testing by Lisa Crispin and Janet Gregory to be a good primer.

Learn a programming environment that will use Selenium

  • This is where I am recommending Ruby and in particular RSpec and the Capybara tool. Capybara is usally used within the context of a Ruby on Rails application but can be leveraged to work against any URLs. I think you would find this a fairly easy transition from Java and that you would ultimately find Ruby to be a more concise and readable language but of course other may very on this opinion. Using a dynamically typed language would certainly broaden your mind and perspectives. Your background may also lead to this being your entry point but I am also providing a broad answer to others.

    Whichever framework you pick for a programming environment, this approach will let you develop automation that can:

    • easily be run by other developers on their machines
    • use programming constructs such as variables, iterations and functions
    • be scheduled to run in a CI server - frequently Jenkins or CircleCI
    • be written in a DRY (Don't Repeat Yourself) fashion
    • be run against other browsers and other devices such as mobile phones
    • be tied into code changes for Continuous Integration Environments

Learn additional concepts and issues

As you develop more advanced automation you will need to learn more about

  • Intermittent failures and how to detect patterns, fix failures and prevent future occurences
  • How to work with Javascript and AJAX calls
  • How to make sure that test fail correctly
  • How to make sure that tests don't have false positives
  • How to make sure that test suites continue to run in a reasonable amount of time
  • When exploratory testing still makes the most sense
  • Focusing on the value added by test automation rather than test coverage metrics

I think the best way to learn is to "scratch your own itch" - this has the advantage that you're immediately applying what you learn, which helps you learn.

For example, if you're currently testing a login page, spend time figuring out how to automate the checks you're doing. Checking user permissions? Figure out how to read the permissions from the DB, verify they match what you see in the UI, etc. In other words, anything you're already doing now that has clear conditions (and doesn't require lots of human interpretation) is good for automating. No specific technology recommendations as it's not clear what kind of environment you're in.

I'd say lots of people fall into automation somewhat naturally - they end up writing a batch script to setup or teardown their test environment . . . then they end up reading the database automatically and end up comparing it to what they see on the screen . . . etc, etc. Lots of small steps building towards a goal.

The other thing I'd stress is automation isn't something you learn and you're done with. It's not like getting a cert . . . the fields constantly changing and there's constantly new technologies to learn, build on, try out new ideas, etc. I think this is one of the things that ends up keeping a lot of people from transitioning from manual to automated testing - they seem to have the idea that they just need to foobar, and by the time they learn foobar, it may be dated (and in the worst case, not even applicable to what they wanted to use it for). That's part of tech - new ideas, techniques, technologies, etc, keep it ever changing, and if you're going to be doing automation, you're going to need to keep learning and adapting . . .


You can start learning by following lessons of this course. You dont need to buy it, you just need to get the title of each lesson and google about it.


I downloaded this ebook which I have found very useful for an introduction to automation


  • good if you could edit your answer to improve. Keep habit of sharing details for your answer! All the best Commented Aug 18, 2016 at 18:56

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