As anyone who has ever tried to recruit an Automation Engineer will know, good Automation Engineers are very hard to find. A lot of the time you will find that people who were poor at programming just fall in to this role, however weak engineers don’t necessarily make great Automation Engineers. This may sound simplistic, but the core responsibility of an Automation Engineer is to test your product in an Automated fashion. The best manual testers have a way of looking at a product that engineers don’t always possess. Great manual testers will test predominantly in 2 ways:
- How the user is most likely to use the product in an end to end fashion
- How they can break the product in ways engineers never thought the user would
The second point above is usually the fun part for a Tester, but this method can discover really important bugs such as unauthorized access to secure locations. The key thing you want when hiring an Automation Engineer is to make sure that they think like a Tester and are able to have sufficient programming knowledge to automate the tests.
So here at SecondMarket we happened to have 2 amazing Testers. They possessed that unique skill of being able to discover almost all critical defects prior to the product going to production. This is no mean feat considering that we go to production every day. In our team, engineers write unit, integration tests and some UI tests, but a significant amount of our front end tests remained manual. This obviously needed to change, but after 6 months of interviewing candidates we were not able to find an Automation Engineer to lead the transition to full automation.
So we only had one option. Our manual testers had to Automate. But they weren’t able to program or had only limited exposure to programming. This is where hiring great people always results in the best outcome. Our two awesome manual testers took it upon themselves to learn how to program. They started off a year ago by taking the CS 101 Stanford coursera course. Then they purchased the book ‘Learn to Program’ which teaches you programming using the Ruby programming languages. After that they started looking at RSpec and Cabybara. One day, they downloaded RubyMine & our codebase and wrote a test for our login page. They continued pushing to learn more. They started with simple tests and then discovered tests can be structured better using test patterns such as Page Objects. The engineers were eager to help their fellow team mates to learn more and spent numerous hours guiding them and helping them understand the necessary fundamentals.
Today, they are writing fully functional automated tests and have become part of our automated build and release process for our new product we just released. The transition has been amazing to watch. It wasn’t something that happened overnight, it took a year but the results are very satisfying. So, my advice, save yourself some pain and turn your best manual testers into Automation Engineers.