When I was starting my journey in test automation, a lot of questions comes to my mind. Such as…. “From where do I start?” “Best tools to use?” “Which Programming language?” “How to plan your work?” “What is a test automation framework or strategy?”
At that time I don’t have answers to all these questions… I desperately looked for the answers, but whenever I tried to search on the web lots of results I got.
I was lucky, I found someone, Who answered all the questions I have in my mind. Also helped me scope my goals and how to achieve them.
I will also suggest you try to find someone who has already gone through the situation. This way you can get the answers to your questions.
By the end of this article, you will understand:
1. What's the role and responsibility of the Test Automation Engineer.
2. How you can start as a fresher.
You will also create your own strategy to become Test Automation Engineer.
Ready? Let’s dive in!
As we know Test Automation is the process of executing test cases using automation tools. Test Automation's aim is to reduce the number of test cases that needs to run manually.
Test automation gives more time to testers for more deep and intensive exploratory and functional testing, which should improve the quality of the software.
As an Automation tester keep these points in mind:
1. Learn the application domain very well and create a test automation strategy.
2. Build test automation frameworks and develop test scenarios, which require deeper programming and technical knowledge.
3. Select test cases to automate the application, which can be smoke, regression, or data-driven tests.
4. Save time for the whole team by creating tools to automate boring and repetitive tasks.
5. Interact with the whole team to understand what are the current needs, and plan what to automate and what not. Discuss ways to improve the work processes even more.
To learn Test Automation first you need to learn the foundation of software testing. Also, you need to have knowledge of the software development process and basic engineering concepts.
To understand the foundation of software testing start reading books or start doing courses on the internet. Also, start learning the Agile testing foundations there are lots of good books and courses available in the market.
It completely depends on what you want to achieve, there are so many tools available in the market with different technologies. Also, it depends on which type of application you want to automate.
Different types of applications:
Desktop applications: To automate desktop applications there are tools like WinAppDriver and AutoIT are widely used for desktop applications.
Web applications - To automate web applications there are tools like Selenium and TestComplete are widely used for web applications.
An unlimited number of devices and browser combinations are supported which made web applications so popular these days.
API or Web services - To automate web applications there are tools like Katalon studio and Postman are widely used for testing API’s.
Mobile applications - To automate web applications there are tools like Appium and Katalon Studio are widely used for mobile testing.
These technologies, you need to focus on to automate the different types of applications.
I recommend picking one application and focusing on that to understand the complete flow of testing.
The answer to this question depends on if you are working currently or in the process of learning or applying for a job.
If you are working already, I would suggest learning the stack your application is developed in, as that would be easier for you to collaborate with the team if you write automation using the same language. Say, for example, the application is written in JS and C#, I’d pick one of these languages to develop testing suites. It will always be easy for you to tap the dev on the shoulder and ask to review your code if necessary.
If you don’t want to pick the language your work application is written in OR you haven’t got a job yet, here is the list of the most popular languages:
Java and Python are the most common languages for test automation, so you could pick one of them and dive into an enormous amount of information about them.
The choice of the tool depends on the choice of the technology you’ve picked previously.
I came up with a list of tools and their uses:
1. QTP (now renamed to HP UFT) - It supports both Desktop & Web Applications.
2. Selenium WebDriver - It is the top tool for web applications.
3. TestComplete - It is used for desktop, mobile, and web applications.
4. TestProject - It is a free end-to-end test automation platform for web, mobile, and API testing.
5. Appium - It is used for mobile applications.
6. Watir - It is also used for web applications.
7. Katalon Studio - It is used for API, Web, Desktop, and mobile testing.
8. Protractor, Testcafe, and Cypress - It is used for web application testing.
9. JMeter - It is used for performance testing.
10. SoapUI, Postman and Rest Assured - It is used for API and Web Services.
Automation testing is required when the product has new features then testers need to test the new features. At that time automation was required to test the existing features. The automation suite should cover the main feature and functionality.
This way, once new features are ready to go to production, automated scenarios will ensure that a feature will continue to work as expected after release.
Keep these questions in mind while building the test automation strategy:
1. Who will be involved in the test automation project?
2. Which tools to build test automation suite?
3. How will test automation fit into the current release management model?
4. How will you shortlist test cases for test automation?
5. What kind of testing environment will you need?
6. How will you execute your tests and track the results?
But before you begin any planning, you’ll need to ensure you and your team understand what is the goal you are trying to achieve with test automation. You want to document all decisions made and have a feedback loop to continuously improve the test automation strategy based on lessons learned while implementing it.
As a Test Automation Engineer, you should have understanding of DevOps and agile methodologies.
If you have build management and continuous integration tools knowledge this will we add on you your skills. You will need to understand how you can impliment reliable continuous delivery of new features when the build and a lot of the testing are automated.
You can also create utilities and tools to help automate repetitive and boring tasks or get CI/CD system components wired up.
Some examples of what you can build:
1. Report comparisons tools
2. Data scrappers
3. Data generators
4. Custom reporters
This list could be endless, you should always be looking for areas for improvement as automation is all about efficiency.
This is an ever-changing landscape, and one that requires continuous learning and a growth mindset. In the IT world, there is a never-ending list of technologies you could learn to upskill even more and sharpen your skillset.
For example, you could add to your learning list:
Acceptance Test-Driven Development
Behavioral Driven Development
Mobile application testing
To summarise, where should you start if you want to learn test automation?
1. First of all, I would suggest realizing that if you want to go to this profession and become a Test Automation Engineer, your motivation should be high as the learning process would take a lot of commitment and time.
2. Create your learning plan, using the roadmap provided.
1. Get a strong foundation in testing
2. Pick which automation technology to learn
3. Pick a language
4. Choose a tool
5. Learn about test automation strategy and planning
6. Get a good understanding of DevOps and Agile
7. Try and build a utility/tool to support day-to-day testing
Cover extra topics such as performance and mobile testing, TDD, ATDD, and BDD.
1. Research the learning resources and pick the most relevant to your journey
2. Find a mentor, learn to think like a programmer, and practice, practice, practice!
3. Be ready to fall and stand up over and over again, keep yourself motivated.
If you’re still thirsty have questions, or simply would like to share your thoughts, then feel free to reach out in the comments section below.