Developer + Tester = Automation Engineer
What is an Automation Engineer?
Basically, we are the ones who code stuff outside the actual product being developed. We eliminate the repetitive work in the development cycle and a majority of this is on the testing a.k.a "regression".
Our main goals are to:
- save time and minimize manual effort spent on testing (or any repetitive task)
- we support the Dev Team by providing fast feedback on their builds (pass/fail reports, detect bugs)
Aside from automated testing, there's a lot more out there that can be automated like sending daily reports, data testing, etc.
Any repetitive task can be a candidate for automation. Do we automate everything?
If we have the luxury of time, why not. But in reality, we only automate what will bring great value and we invest time on long term scripts.
I personally use this formula I learned from one of the courses under Google IT Automation with Python Professional Certificate :
Time to Automate < Time Spent on Manual execution x No. of times per month
Given:
Time to Automate = 45 mins
Time Spent on Manual = 20 mins
No of time ran = 10 times per month
So, 45 mins < 200 mins per month
Then this is definitely worth automating.
Back to our definition: Developer + Tester = Automation Engineer
Here are some skills that Automation Engineers usually have:
1. Programming Skills
i.e. Python, Java etc
Knowing the basics is enough to get you started.
Bash Scripting - nice to have especially if you have tasks that need some interaction with OS like reading/writing files or monitoring your system health.
2. Knowledge on Testing Tools
- Unit Testing: JUnit, PyTest (this is usually covered by Developers but it is good to know how to write unit tests)
- Database/Data Testing: SQL / NoSQL
- API Testing: Postman, Swagger, Mocha, Chai
- UI Testing: Selenium, Cypress
- Mobile Testing: Appium etc.
- Cross browser Testing: Browserstack etc.
- Testing Frameworks: Selenium, Robot Framework, etc.
- Codeless Testing Tools: Selenium IDE, Test
- CI/CD : Jenkins, Travis, Github, Gitlab etc
- Test Management Tools/Reporting: TestRail etc.
3. Locators
- JsonPath - for APIs that return JSON responses
- CSS Locators - for UI elements
- XPath - can be used for both HTML/XML doc types
4. Testing Fundamentals:
- Test Plan Creation and Test Strategy (Manual and/or Automated)
- Test Execution
- Logging and Managing Bugs
- Regression Testing/Smoke Testing
- Testing in Production
My Automation Journey
Years ago, I worked for a well known global IT company and they were upgrading their projects by shifting from Manual to Automated testing. Back then, I was originally a Java developer. The manual QAs don't have knowledge on programming so I was assigned to explore the automation tools available. We had to do a lot of research and trial phases on which automation stack will be easier to implement and which was most cost-effective for our clients.
As years went by, I have seen many test frameworks evolve. We now have a lot of great tools out there and I found a place that got everything you need to help you get started with automation.
Are you also shifting from Manual to Automated Testing?
Are you building a team of skilled Automation Engineers?
Are you an experience Automation Engineer and want some certifications?
Check Out -> Test Automation University
Whether you are developing a desktop or mobile app, you can follow their learning paths and focus on what fits your project.
FREE test automation courses with videos, transcripts, quizzes, credits, ranks badges, and certificates!
Good luck and Happy Coding!
P.S. This post is NOT sponsored. This is a personal recommendation for newbies in Automation. Even if I'm experienced in automation, I still enjoy collecting certifications and badges. #neverStopLearning
Top comments (0)