You’ve just started a brand new role at a company and the very first task you’ve got in front of you, is to implement test automation.
Now, this company has never done any kind of test automation and right now is relying on a hodgepodge of methods to test and measure quality.
Where do you start and how do you begin such a momentous task? I’m glad you asked.
We’re going to be talking about the general, fundamental concepts surrounding test automation - not specific tools or frameworks you need to use because those will vary based on what your organisation’s unique needs.
Don't dive straight in
First off: many people try and start by just going ahead and trying to automate whatever the tests that are currently being done manually. A common scenario is they have test cases or tests that they have to run all the time, so people dive in and automate them straight away.
The problem with that is we don't actually know if any of those tests are any good or even worth keeping in the first place. Just because they exist now doesn't mean it's something we should go and automate. Those tests can easily be relics from an old version that nobody has thought to remove (and believe us we’ve seen plenty of those!).
Map how you currently test
Before you even start diving into automation of any kind, the preference is actually to start on mapping out how you are currently doing testing.
You need to understand the current approach to testing and then work out the best place to integrate automated tests.
A good place to start in a lot of companies is creating the data, because you're going to need that for your automated checks (and for your tests).
Have a clear end goal
The end goal should be to understand exactly what testing needs to occur at what ‘state’ the application is in and then automate where you can within those ‘states’. For instance, you might need exploratory/crowdsourced testing at one ‘state’ of the application and regression at another ‘state’. These two testing types require different kinds of automation.
However, if you had just jumped in automating, you could easily have caused heartache where it didn’t need to be and slow down your existing processes.
From our experience, we see a lot of new starters dive in to automate whatever their skillset allows without fully grasping how things have been done and assessing the right way for automation to be implemented based on the stage (or ‘state’) the application is in.
Use existing development language
In terms of development language, you should go with whatever the stack's built in, and there are advantages to this (firstly, the developers will thank you). You’ll also be able to speed up the level of automation coverage and move faster (you’ll also have the opportunity to leverage tools like Chef and Puppet to add a level of CI if you’re familiar with a language you’re comfortable with).
For instance, think of a mobile app. If you move to a company that's got a mobile app, the first place you would start is understanding how you distribute the testing environment app to devices, because that's something that you’re testing team will be doing all day long.
So, start by automating the deployment of the app so that you can quickly get many versions out to devices and then go from there. A lot of the logic of these apps is in the API, so then go and look at automating something on the API level and work your way up over time.
Change your automation mindset
You also need to think about the automation that the team itself can complete. Take a look at putting in a plan for unit tests, integration tests and pipeline deployments as well.
One of the biggest misconceptions people have about automated testing is that it is about the automation tools when it is about the mindset you need to automate where and when you need it.
Technical skillset, while important, will not give you the knowledge to know what is important to implement and what is not important. A certain level of critical thinking is required so that you automate functions that will improve the quality of your software.
Fundamentally, automation testing for any company comes down to choosing the most impactful areas to automate.
Remember my How To Implement Test Automation For The First Time tips:
- Don't dive straight in
- Map how you currently test
- Have a clear end goal
- Use existing development language
- Change your automation mindset
Understanding how testing works in your company and then building out a roadmap where automation can help will be your best approach. This gives you the building blocks in order to build out a successful approach to automating the right things, at the right time, for your organisation.
To learn more about Test Automation and types of testing you should include in your testing strategy, read our Ultimate Guide to Software Testing.