How can I become a Test Automation engineer from a Manual Tester?
This is a question that every Manual Tester / QA ask me on LinkedIn everytime they connect with me. Most of the time, a person will be working as a manual tester with on an average 2 years of experience.
There are many online blogs that explains what automation is. And, there are tutorials on how to use automation tools. But, I have not come across any blog/article that says why test automation is required and how is that actually implemented. “Why” and “How” are two basic questions I would like to address today.
How day-to-day life of a manual tester looks like?
During starting the project, a Manual Tester understands the requirements and work on writing manual test cases. Once the product is ready to be tested, Manual tester gets set of test cases through Excel or Test Management tools. He executes tests. After the execution, he updates the execution status. In case of any bug, he reports the bug through bug management system, through excel or through email. End of the day, he sends the overall status of tests executed and bugs found. I am sure, most of you can relate to this.
We all are working Agile. Everyday requirement changes and new functionalities are added. So, we have to do lots of testing every day. More changes and more new functionalities lead to more requirement of men power.
Why do we do Test Automation?
Test Automation helps you reduce manual tasks. Say out of 1000 tests 900 tests you are executing during every release lifecycle. You can automate all 900 tests if those can be automated. This will reduce your manual efforts going further. Also, automation reduces men power and chances of error. Once you automate, you can do parallel execution. Hence reducing release lifecycle.
You are testing the login functionality Facebook. It will take you nearly 30 seconds to execute simple login test on one browser. Say, we take most 5 used browser in the world. It will take you 30*5 = 150 sec to execute login functionality on all 5 browsers. Imagine you have 1500 tests that take an average of 60 seconds to execute. In total it will take 1500 tests x 5 browsers x 60 seconds = 450,000 seconds to execute your tests. Let’s assume, what takes 60 sec for you can be done in 45 seconds by your computer. Assuming you automate all 1500 tests. And, you are executing these tests in all 5 browsers in parallel. It will take 1500 tests x 45 seconds = 67,500 seconds to execute all tests. It saves you 85% of your time.
So, here are points that justify why automation is required.
- It speeds up release lifecycle
- It reduces men power
- It reduces the chance of error in testing
How day to day life of a Test Automation engineer looks like?
During starting of the project. the automation engineer works on identifying the right tool for the automation and if required starts creating the framework that further helps in writing automated tests. If the framework/tool is already ready, the automation engineer sets it up and help in writing the manual tests. Once, the product development reaches the point where it can be automated, the automation test engineer starts automating tests based on priority. Once, they have the good number of tests ready, they work with the DevOps team and set up a CI server that schedules and runs automated tests. Any error found by the automated script is either added to the bug tracking tools or manually added to the bug tracking tool by the automation engineer. If automated scripts are failing due to change in the application, the automation engineer fixes it.
What does test automation engineer automate?
Test automation engineer simply automates test cases that are executed during every build and that can be automated.
If there are no manual testers in the team, who writes test cases?
In such case, mostly test automation engineer takes care of writing manual tests.
How do I become Test Automation engineer? I am a manual tester.
If you are good with programming, or you want to learn to programme, you can choose any open source tools. You can choose Selenium with Java for browser automation and Appium for Mobile automation.
If you are not good with programming, or you do not want to get into programming, you can choose to learn Paid software like TestComplete or QTP.
While you learn those tools, implement it on your project. Try to automate tasks that you are doing manually.
You can talk about this in your upcoming interviews.
Hope this blog helps you understand and design career path. Feel free to comment if you have any questions.