Getting started in test automation
If you have been a tester for a while, you may be thinking that there are not many positions available for “manual” testers anymore. I think there are, but also, learning automation is one of the best skills we can add to our professional toolkit.
Nowadays there are many courses on different platforms, a career path that is published for free and many resources that can help us achieve the goal of automating tests.
Does all automation require code?
The truth is that it doesn’t. There are many tools today, paid of course, that are low-code (they require very little knowledge about coding) and no-code (they don’t require programming knowledge at all). Many of these tools use the record and play model, in which we “record” a test step by step, and then run the test in “play” mode (a repetition of the previously recorded tests).
This way of automating tests has some limitations, we can create API and UI tests, and although it has its detractors, I consider that if a “record and play” tool covers the testing needs of a product/team/organization quickly and reliably and fulfills its purpose of giving us feedback on the current real state of our systems/applications/products, there is no reason not to take advantage of these tools.
And now… Let’s talk about code…
If we want to get started in test automation with code, we need to learn:
- Programming basics
- Automated testing concepts
- A programming language
- Test automation basics
- An automation framework
- Version control tools
Programming basics
They are not tied to a specific language but are the basis for understanding what we can do by programming. This refers to flowcharts, algorithms, pseudocode, operators, data types, variables, constants, functions, procedures, control and iteration structures, and so forth.
Automated testing concepts
Unit, integration, regression, end-to-end tests, and familiarize yourself with continuous integration concepts.
A programming language
Of course, you can work with many more later, but to start, choose just one and focus on that language to learn. The choice will depend on whether you want to work on mobile, web, or desktop applications.
I want to emphasize that you don’t need to know everything about a programming language to be able to collaborate on a test automation project.
Test Automation Basics
This refers to test logic, data and configurations, design patterns such as Page Object Model and Screenplay, assertions, locators, locator strategies, retries and timeouts, test parameterization, Mocks/Stubs, logs, reports, execution and orchestration, exception handling and maintainability.
You can use the Test Automation University website to explore concepts such as Setting a Foundation for Successful Test Automation and Web Element Locator Strategies.
An automation framework
As with the language, choose a single framework and focus on learning the fundamentals and even better, specialize in it. Later, it will be much easier to learn other languages and other frameworks. The choice of this one will also depend on whether you want to work on mobile, web or desktop applications.
Version control tools, such as git, especially since we are going to collaborate with other developers and/or testers on the project.
Using AI
A few weeks ago I made a presentation for Testing Venezuela in which I showed how we can use Artificial Intelligence to create a test plan and an automated suite with Playwright.
Any artificial intelligence you use will be able to not only write the code for you but also explain for you step by step each line of the code it is building. It is a perfect tool to accompany you while you learn and practice more concepts of tests and code automation.
Here I link a couple of videos, using ChatGPT and Perplexity that can guide you taking those first steps using AI to automate tests.
It is very important that you know that we must be careful with the information we provide to AI, because you could be exposing private information of users and clients, or the business models of the company that are intellectual property. If you go all in with these tools, the company should have a paid account in the tool they decide to work with.
Low-Code Tools
If you want to explore low-code tools, you can start with Codeless Test Automation with Selenium IDE which is free.
Resources to Consider
Introduction to Programming with Pseudocode in Spanish to understand the basics of programming, even without knowing any programming language yet.
Programming and working with code for testers: to get started in programming. As I said before, you don’t need to know everything about a programming language, but you do need to know its basics, and with this course, you can do that.
Test Automation University: it has different learning paths depending on the programming language and framework. It also has other useful resources such as Locators Strategy, Git, Continuous Testing, Codeless with Selenium IDE, among others.
Creating an Automation Suite with ChatGPT and Playwright.
Creating an Automation Suite with Perplexity and Playwright.
Conclusions
We can automate tests using code and without code (according to the resources we have and the team’s goals and preferences).
There is much more we could cover but this post is about how to get started in automation but let’s focus on the most important thing, the very basis.
If you are a manual tester and you do not want to enter the automation area, you can continue on the path you are on or learn additional skills and change roles (such as business analyst, scrum master, among others).
AI is a great help in this learning process. Don’t stop using it but responsibly (taking into account the data protection and intellectual property restrictions to which we can expose users, clients and organizations).
Personally, I think that automation is important, to complement the work we do every day! We are testers and automation is one more tool to master.