A year ago, I would have said that you should learn Java very well and then use it with an automation library that works for your application.
But today, I do not have the same answer.
The test automation field is very crowded today with many free and paid solutions, for different languages, different platforms and environments.
You have Selenium WebDriver for web automation but also Puppeteer, Cypress, Katalon Studio, Tosca and others.
On the commercial side, popular solutions are Ranorex, UFT, Test Complete, Tricentis, to name only a few.
What should one learn for a test automation career?
Which technologies are going to be useful in test automation in 5 years?
All companies use websites for business. They usually have a responsive website that works on desktop and mobile devices and native applications for smartphones and tables. Native apps were preferred to mobile websites due to the superior design and functionality but recently, things started to change in the favor of mobile websites.
And, between a mobile website and a native app, the website is always easier to maintain and change since nothing has to be installed on the mobile device for new versions of the site.
- the most popular technology in 2019
- it is used more and more instead of Java and C# for web development
- it allows creating mobile sites that are similar to native apps in terms of look and feel and functionality
Why are these things important for test automation?
Because lately, companies insist that test automation is done in the same language as the application development.
The reason is maintainability.
It makes sense 100% to insist on using the same language both for the application development and test automation.
It is object oriented.
It supports unit testing frameworks (Mocha, Chai, Jasmine).
It has decent IDEs.
It can be used for front and back end development.
You understand by now where I am going.
- for web automation, there is a binding for Node.JS named webdriver.io which is really good
- if you don’t like webdriver.io, you can use Cypress.io
This does not mean that Java and C# are not good choices for test automation.