Being an automation tester these days is great, you own (or are learning) a skillset that is very much in demand. From start ups to large established tech companies, everyone wants what you can offer.
But because of this, more and more people are going the route of automation and teaching themselves these skills. Which is great, but it means you have a lot of competition for all these jobs out there. So, you have a duty to yourself, as well as the companies looking to hire you, to be the best automation tester you can be. But just what separates a good automation tester from a great one?
The most important thing is that you remember the key word in your job title. Tester. Your main job is to be a tester, the fact that you can automate tests is just a skill. But without the tester mindset, you are just a coder writing low value tests that will cause more problems than they solve. The kind of tests that will always pass because they aren’t really validating anything of note. These will look great on a dashboard but not really benefit the project. Learn what it is to be a great tester first and foremost, and then don’t be afraid to build upon those skills. By being a great tester first, you’re already becoming a better automation tester. Because by appreciating the things that make a good test case and a test approach, you can translate that in to your frameworks and in to your automated tests.
This leads me on to the next point which is to know what to automate. Just because you can automate it, doesn’t mean you should. I’ve been involved in many projects where overly keen automation testers just want to go and automate every test case going, especially early on in the project where they are small and quick wins. This might seem like you’re providing value, but ask yourself if those tests are really worth your time and if the return on investment was worth it?
Learn about the tools that are out there and what they can offer you. You might spend weeks or even months trying to add functionality to your framework to tackle a particular requirement, but I’m willing to bet that there is a solution out there already, often free of charge thanks to the wonders of open source. Learn about other platforms too, for example, knowing about mobile testing and the available frameworks to run mobile tests will serve you well. It’s great to be an expert in one thing but it will hold you back if you refuse to learn anything else. Analyse the problem that needs to be solved and determine the best tool to solve it. It may not be the tool that you specialise in, so having that knowledge of other tools helps you be better.
Next is to know how to automate throughout the stack. I often work with automation testers that try and automate everything through the UI, and when that’s difficult to do or not possible, they either create bad tests or no tests at all. Learn how to automate at the service layer and unit level, this will allow you to expand your testing coverage, and even create faster and more efficient tests.
Quite often, even if it’s possible to automate the UI level, it’s not best approach. If you have already covered your UI in an end to end test and have an API behind your UI, just use that for your smaller functional tests. Call your API and then verify the data that is returned, and then if you need to, verify the results in the UI. But why go through a painfully slow workflow if you don’t need too, when you can call an API in seconds and perform the same test.
Another way to improve your skills as an automation tester is realising that you can’t do it all by yourself. Work with key stakeholders within the project, and don’t be afraid to ask questions. Working with developers especially will benefit your tests as not only can they help contribute if required, they can also keep you in the loop of any additional layers involved that you can use when writing your tests. Product owners can help you by providing clarity on certain features and also provide key data on how users may have approached the previous iterations, which will help you identify test cases that you might not have thought of previously.
Lastly, don’t limit yourself to just writing tests. The role of an automation engineer is to save time and money by reducing the requirement of manual testing and performing the same tasks over and over. So why limit that time saving to just tests? I’ve often created tools in house to reduce the need to perform long and tedious tasks, such as tools to create page object classes, the insertion of pre-requisite data and environment setup. You may have to do these in your own time if time restraints limit you in your normal working hours, but these will benefit everyone involved and in the long run give you more time to automate tests. But automation shouldn’t just apply to the tests themselves.
To summarise, the role of an automation tester has changed over the years, and will continue to do so in the years to come. By having that will and enthusiasm to improve and keep up to date will only help you in the present and the future. As automation skills become more and more sought after, companies will become more selective over the candidates they are hiring and simply being a coder that writes tests won’t be enough anymore. Embrace the mindset of being a tester and use that to improve your automation skills so that you can be the most effective and valuable automation tester you can be.