Hi, I have been working as functional manual tester for few years now. I am interested in learning automation testing tools.
But I am not sure where to begin with. I have done coding in C in past and I am good at coding logic. I have written pseudo codes for developers in past for complicated functionalities.
Which coding language should I learn to get into automation testing? Also, which automation tools are best to learn?
A lot of people would blindly say JAVA and SELENIUM.
BUT NO NO
Check out vacancies around you. Ask your own company what they need if you are staying at your current company. Check out what are the most used frameworks in your area and most common languages in your area.
If itās selenium, then itās selenium but it could be a Cypress or playwright or RobotFramework. Thatās why itās important for you to check out the things around you and not let people tell you blindly ādo this and thatā
This should be your starting point, to identify what is going on around you and then start your journey.
EDIT: Welcome to the community!
To build on this. Start somewhere, and keep learning. None of it is bad learning, just be willing to switch it out for another language or framework as your team or market demands.
The second, third, forth time gets easier and easier. You donāt start from scratch.
An API call is an API call, a page locator is a page locator. Sure, there is lots of differences to learn, but none of it is wasted. So just start.
There are tons of places to learn, paid and free.
Test Automation U is great, and free:
MoT do their certificates in test automation, in c sharp, java or JavaScript.
And there are tons of websites for learning general programming languages, like Free Code Camp, and Code Academy.
It can be if it takes away from the focus on learning something thatās fitting their context at this point in time.
We still donāt know why the person wants to learn it.
No learning is bad, even if some is better. The hardest part for most people is making a start, once you start somewhere itās easier to go anywhere.
I guess I can rephrase, this as, in my personal experience, in my learning journey, there has been no bad learning. Everything helps me think differently, or already know something, that helps me in the next bit of learning. Your millage may vary, as always.
I would start with whatever automation solution your current company uses. Then you should be able to provide value while learning and you have experienced automation engineers to help you on the journey.
It is best to start with something you can get your hands on sooner rather than learn something that might or might not be of value down the road.
Thanks for your reply Kristof. Most of the job posts that I see currently have mixture of automation tools. Thatās why I couldnāt decide where to begin with. If I were to start learning a programming language, which language would be better? Is there a programming language which is widely used in different tools?
Thatās what my whole post is about. You have to check the vacancies which languages & frameworks are important
Because I can now say "learn java & seleniumā but if nobody in your area wants that then itās useless
Hi Ipstefan, I am interested in automation testing hoping it will help in my knowledge and career growth. At this point, I want to move out of manual testing role and start with automation testing. But there are so many tools out there, I am not sure where to begin with. It is quite overwhelming. I also want choose area of testing which has high demand and pay.
Iād highlight this, as I agree, we all want to find jobs easier and with better pay.
And growth there as a tester can be rather poor.
What Iāve done is search about 10-12 local jobs sites. Then 5-6 remote jobs sites where the contracts can fit with the country I live it.
Check where my knowledge would fit and where I might have gaps.
Then I picked some preferred coding languages, tools, testing interfaces to automate against (I still want to enjoy what Iād doā¦)
Then Iād find time to do experiments in the current job: build scripts, tools, program, peer review automation or product code, automate various things to support the testing, and learn by doing and research by needs.
I can also recommend peering with some developers or other automation engineers from time to time to learn how they model the solution to a problem. Try to understand what they do and ask questions where you donāt understand. Be friendly and kind, and give something in return.
Iām going to deviate away from many of the answers here, but hopefully with suitable justification. Firstly, the world of IT moves too fluidly to consider what is required āright nowā. By the time you learn it, it may/will have changed. When I came back to automation, I refreshed my Selenium skills then found many places have moved to Cypress or Playwright. I started in a world of Java, then there was a switch to C#, now it seems itās back to Java again! That doesnāt mean Iām out of luck, it just means I have to learn a new tool/language.
I most agree with the statement above āNone of it is bad learningā. Start somewhere, but try and understand the āwhyā as well as the āhowā. Staying with the good advice from fullsnacktester, learn how locators work, learn how to retrieve and assert values from said locators. Youāll start to find every tool has (for example) the ability to put text in a box. What command they use may differ, but none of them will work without a locator.
Similar with API. APIās themselves are relatively simple to break down into their components. And again, the tools (and languages) may add headers in different ways, but if your test needs to send a JSON payload and you canāt add an āapplication/JSONā header then no tool will work.
And donāt forget other areas of automation. Thereās just as much value in being able to write a script to clear dead data or reset a users password. If your productivity suddenly skyrockets because youāve developed a script to handle mundane tasks, then youāll get noticed and possibly given additional automation work.
Agreed with Ben about essentially just starting somewhere. If you can do something at work, for me, that brings much more value. I spent years doing coding and automation and for me it really clicked when I could fit that learning to a purpose. So I guess finding something that has a purpose could be good. Or maybe a course that involves a small project of some kind. Then you can see the outcome of what youāve done. One of the things I really like about automation is that I actually create something. So I find it hard to learn without an output.
Really good advice from Kristof - try to do some analysis of where the demand is for your area, the types of products you want to work on, etc. And remember that automation doesnāt always have to be via the UI!
If youāre really stuck on where to get started, I say just pick the one with the intro course that appeals to you the most. A lot of the general concepts are the same, and the most important thing is to get started. You can also do a bunch of intro courses on different languages for free on sites such as Codecademy. They donāt take too long, and youāll quickly spot those concepts I mentioned, as theyāre repeated in every course. Youāre not committed to the first, or even second language you start to learn.
But if you really just want an answer which may end up being totally wrong for you, JavaScript / TypeScript and Playwright. But I didnāt say that
Iām puzzled, what is the state of automation in your current job / team / company / project? This is the best place to start looking for answers.
I think you are asking too open-ended questions and the result is you are overwhelmed with possible actions to take so in the end you donāt take any (Iām happy to be wrong here, though!).
Ask yourself this: how can I automate the current project? Current task? Current process? Youād be surprised with what you find!
Also, not all automation needs to start with months of learning a programming language. For my own example, I always look to optimize processes inside a team so I realised we do a lot of repetitive work when managing Jira issues. So Iāve set up several automation rules that help us be faster and more productive. Thatās also automation!
How about a script that copies some report to some other folder plus renaming it? Or MS PowerToys? Or GitHub Actions? Etc etc, the list is endless, Iām just spitballing odd way to think about automation, not necessarily strictly QA software automation.
TLDR: best way is to have a problem you want to solve and try finding a solution, donāt go the other way around, working on āsolutionā (learning to automate) while not knowing what problem it would solve you.