What It Takes to Be a Full-Stack Automation Engineer
Setting aside the philosophical debate of why, this guide unfolds the noble, yet laborious journey of arming yourself with the knowledge to successfully transition from manual testing to a full-stack automation engineer. It’s a bold endeavor, which requires time, good navigation, and practice. The good news is that you don’t have to become an effective automation engineer overnight. The journey should be understood as a continuous spectrum instead of flipping a switch.
Consider what makes you an invaluable asset to your team. You already possess the “know-how” and domain knowledge of test automation.
Conquer the fear of being an amateur. Writing your first tests can be overwhelming no matter how much studying you do beforehand. It helps to think of automation as if you’re translating your manual test steps from English into a different (machine-readable) language.
Find the right tool. A smart automation engineer understands that there’s no such thing as a “silver-bullet” for test automation and will not use a tool without thoughtful reckoning. Here are some criteria to help you pick the right tool:
- Readability: Your test automation tool should allow the creation of business-readable tests so you can utilize your domain knowledge and share your tests with other subject matter experts.
- Scalability: Think long-term and ask what-if questions. What if more members are onboard? What if you want to expand from desktop to Web, Windows to Linux, iOS to Android, etc.? Can the current test assets be reused to reduce the future effort for developing new tests?
- Maintainability: It is important to think about the long term. What if more app versions are released bringing new business logic and GUI changes that break the current tests? Should some of your tests be parameterized? How do you avoid keyword duplication?
After settling down with a tool, remember to apply these principles when automating, that way you’re less likely to write tests that are vulnerable to changes.
You need programming skills. Not at the level of an architect, but at least a basic command of programming languages, such as Python, C#, Java, etc., is needed to be truly efficient. You also need some insight on web technologies, such as HTML5, XML, XPath, WebDriver, etc., and miscellaneous skills, such as SQL, REST/SOAP, xUnit, etc.
Strong principles entail a successful pursuit. A good thinking framework helps you solve upcoming problems more systematically, thus more productively.