Well, the simple answer is it’s NOT…. unless you make it difficult for yourself!
Learning test automation is often perceived as tough and daunting journey by most people and this mostly down to the way they approach the problem.
Most people who attempt to learn on their own often oversee the key enablers and jump straight into action with opensource automation technologies.
To understand where to start, we need to take a step back and first understand how automated tests work.
In simple terms an automated test is a ‘piece of code’ which when run mimics the human interactions with the application being tested.
The human interactions mimicked can be as simple as clicking a button, checking the contents of a web page and even producing a test report. Given that an automated test is code, its imperative that anyone who is embarking on this journey starts with learning some core programming skills. For someone who wrote their last piece of code in university (or never written a line of code), this can seem even more scary.
Well the good news is that modern day programming languages like Java and C# are easy and fun to learn.
It can take a while to get around the syntax and logic but with the right training and direction this should not be a big deal for most people. Let’s face it the bloke next door who claims to be an automation expert is not super-human!
Let’s now go a step further, now that we know we are dealing with code for test automation, we need to understand how to handle code at a professional level. Apart from this these automated tests have to run each time code is deployed. The whole idea is to automate the execution of these automated tests.
This includes a basic understanding of
- IDEs (integrated Development Environments) like Eclipse or IntelliJ
- SCM (Source Code Management) systems like Git or SVN,
- Build tools like Maven or Gradle
- Continuous Integration pipelines with Jenkins or GitLab.
Remember these tools may sound complex, but once you understand why they are required and how they fit together it makes it simple.
You don’t need to be experts with each of them or learn all of them.
For example, if you have learnt Jenkins and have to work on GitLab it should be fairly simple. In most organisations there are DevOps specialists who set-up and manage these tools.
Once we have a sound knowledge of programming and development practices, we can focus on test automation. The easiest way to start for most people is to start testing web applications with Selenium WebDriver. Pick a simple web application (or website) which will be application under test, outline the scenarios you want to automate.
Build a simple scenario and get it to run on the Continuous Integration set-up. Once you have this running, attempt building more complex scenarios.
There is a huge knowledge base on the internet which should help you when you are stuck.
Its ok to copy code and get your test running as long as you understand what exactly the code is doing.
These days there are open source test automation frameworks which can used on web applications, micro-services (REST), mobile applications (appium) and so on.
The top picks for beginners will be automating web applications and micro-services as they are most sought after on the market.
Going back to the original question, learning test automation though requires significant effort and commitment should not be seen as a challenge to career progression. Following a proper learning path with some guidance will make the process a lot easier and equally enjoyable.
Java and JavaScript are the most used programming languages for Test automation.
To find out how you can master test automation with JavaScript please checkout our JavaScript Automation Specialist course.
To see how you can up-skill and start your journey towards Test Automation with Java checkout your Developer In Test course.
Comments