When Is It Really The Best Time To Automate Your Tests?

To start with, let us see what test automation is by definition…

Test Automation – In software testing, test automation is the use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. Test automation is critical for continuous delivery and continuous testing. (Source – Wikipedia)

In today’s continuously evolving industry (now in the IOT generation), particularly in the area of software testing, the increasing demand for test automation shows no sign of slowing down. But, before jumping on the bandwagon, it is best to pause for a moment. That’s right – in spite of the fast-paced world out there trying to keep up or even get ahead, you need to hold still for a while and gain perspective, get into context with the fundamentals, using this as your foundation, before getting back on track.

In general, testing is a task, being a good tester is a skill, smart testing is from experience, and automation testing is learned. Now, having said all of these, I would say that an effective tester (test analyst/quality analyst/test engineer, etc.) should be the essence of testing. What does it have to do, then, with understanding when is the best time to automate your tests? It has a massive impact! It is crucial to have these variables to come up with an automated testing solution that would make or break. Here are many, though not limited to these, reasons to consider:

An effective tester…

  1. Has an inquisitive mind in learning and analysing the product/solution from a bird’s eye view (domain knowledge, business scenario, user experience), understanding the schedule, priorities, impact, scope, limitation, and most important of all, the goal.
  2. Has good communication skills to drill down point #1, as well as to be able to voice out (orally and in writing) the next steps to take to provide a solution (in short, to be able to communicate those amazing ideas in your head).
  3. Has a sponge-like learning appetite, with a sturdy spine to get your point across.
  4. Has the foundation knowledge of testing practices, strategies, and concepts.
  5. Has the flexibility to wear many different hats.
  6. Has the openness to collaborate.

So then, an effective tester will now have sound judgement as to when to implement a test automation solution/strategy. Now try to imagine all categories/specialisations in the testing industry (e.g. API, Performance, Selenium, Robot, Cucumber, Security, Test Management, Manual, etc.) having this core attribute, their specialty will now be a cherry on top, an added value, when implementing the ideal strategy.

Going back to the question posed in this article’s title, my answer to that is, NOW.

Wait, what!?

Here’s why:

  1. NOW – will urge the tester to think from a bigger perspective (refer to attributes of an effective tester) and assess if there are areas that can be automated. If the assessment leads to an answer where automation is not practical, or is not applicable, then it is okay, because at this point, you have thought about the different variables to factor in at the very least. There may be practices or strategies that you may uncover, during assessment, as areas to improve, which may have slowed down the testing activity, instead of head on automating the test (e.g. too many repositories to manage, ineffective test prioritisation, etc.) Instead of focusing before on one module/task, now you have a wider perspective on things.
  2. NOW – should the assessment of the situation give you a go signal that automating the test is the best option, starting now will save you time in the future. What I am saying is that, if you are prolonging the push to touch automation, and waiting for the perfect time, you are just delaying the results. Keep in mind that having an automation testing strategy is not an overnight wonder, it takes time, you are developing a solution. The “perfect time” may never even happen, instead, take it one step at a time. For instance, a step can be, “I will now read about articles on automation testing concepts popular in the industry”, or it can be, “I will talk to my manager about a task I do repetitively, so we can cook up an action item that would promote automation-centric solution.”

If you have this mindset of NOW, then you will have accomplishments early on. In addition, let’s say you have already completed setting up your automated test today, all you must do tomorrow is execute it and reap the results.

I would also like to point out, that there are cases where you may be working in a testing consultancy, and you may stumble upon clients whom already have a great testing practice established. In this case, you may now only be required to simply automate the test cases they already have and integrate it with a fantastic piece of framework you built. This may limit you in some ways, just like learning the entire platform of the client, etc., however, should you possess the attributes of an effective tester, you will see if a window of opportunity will open up, so you can practice those qualities.

Bear in mind:

  • Automation testing will never replace manual testing, it is an added value, but its usage is increasing as our technology evolves.
  • Automation frameworks are not easy and fast to construct. Think of it as developing a solution, which is complex and takes heaps of time to establish. However, once implemented successfully, results will happen faster. It will never be a quick fix.
  • An effective automation solution can only be achieved with support from the team/project team, not only on the testing space.
  • You cannot automate everything.
  • Automation testing is not limited to the use of tools or strategies that are popular nowadays (e.g. Selenium, Cucumber, Robot, etc.). It is applicable to utilising common tools where you configure it to make it work smarter and faster (e.g. macro from excel).
  • Depending on the situation, automation testing may be expensive or affordable. Creating a framework takes time and resources, so expect higher costs in the initial stage, but on a latter time, once it has been established seamlessly, costing may trickle down, however, you will also need to consider maintenance.