Test Automation Checklist You Should Follow

Stan Georgian
6 min readNov 10, 2020
Photo by Scott Graham on Unsplash

We all know that if we want to move our web application in production and give them to users, we need to test them before. We can do this in two ways.

The first solution is to test the application manually, which means we use the application as a regular user would see if everything works as expected.

The section option is to automate the process using test automation which means we create a script that carries out the test and informs us if the received results are as expected.

If you find yourself in the first situation but you want to move to the second one, or if you are just starting out with test automation, then here is a checklist that can help you speed up your work by solving some of the most common problems.

Identify the test you want to automate

Before we even begin to automate anything, we must decide what we want to automate.

For some tests, there is not enough budget or time, and for the others it is a complete waste of time even to try to automate them.

If your manual tests fit in one of the following categories, then you should probably automate it:

  • High importance to functionality: Your attention should be on tests that cover vital functionalities. Write down all the critical functions without which your application cannot function. This is your starting point and these are the tests you should start automating.
  • Longevity: For a feature that you know may change, be replaced, or be removed entirely, automated tests are irrelevant. Usually, you automate a test with the idea of using it every time you want to see if that functionality still works as expected. That’s why you should focus on the features that stay in the application for a longer time.
  • Repeatability — If you have a feature that is not going to change or update in the near future, then testing it manually is more productive than spending time and budget to have someone to write an automated script for it. However, if you have a feature that will be updated routinely, then automating tests would save you a lot of time.
  • Determinability — Test automation works by writing scripts that will perform various actions whose results will later compared with a predefined/expected outcome. If the tested function does not have predictable results that a test script is able to catch 100%, then it does not make sense for the test to be automated, because the test can fail incorrectly by returning false signals.

Pick a tool

Once you decide what tests you want to automate through scripts, it’s time to choose a tool for automation.

These tools can vary from simple frameworks like Jest or special software frameworks like Selenium, to even an entire platform that allows you to do basically everything you need.

Pick a tool based on the experience of the team. If you are working on a personal project or working alone, and you have enough time to spend on learning new things, then you can choose low-level tools. This will give you a more hands-on approach where you have full control over everything using just code.

On the other hand, if you are a manager and your team and your testers don’t have much coding experience, then avoid sending them for training. This is mainly because there are plenty of solutions today to help your team perform test automation with limited coding knowledge.

There exist Codeless tools: AI-driven software that can help you create test automation scripts in low-code or no-code environments by only using drag & drop tools and diagrams.

For example, one of these tools is Perfecto — an all-in-one solution that allows you to create, execute and analyze test automation based on Selenium.

Perfecto is a test automation platform used for both Web Testing and Mobile Testing that can also be integrated into the DevOps toolchain. In addition to the Codeless AI-driven solution, you can also use it to do manual testing, mock any device, run it on Android, iOS, or Web applications, and create automated scripts in Appium, Selenium and others software as well.

However, if codeless is the main thing that you are interested in, and you want a solution created specifically for this, you can also check other tools like TestCraft, Gettrudon or Katalon.

Prepare the environment

Once you choose the tool you’ll use to create automated scripts for your tests, it is time to create the right environment.

The software you write will be used in specific environments. To ensure that your test results are accurate, you must create a 1-to-1 environment. In other words, you should aim to replicate the real-world conditions where your app will be used as closely as possible.

Otherwise, you may end up in situations where your tests indicate that you are good to go. Yet, when you deploy the application, it suddenly fails because the real-world environment is too different, or the data uses a different format.

Therefore, at this step, you should create realistic test data and mock most of the external resources.

Automate

Now that you have everything in place, it is time to create test automation.

At first, don’t focus on the quantity of automation scripts created, but rather the quality of each individual automated test. It is way more productive and efficient to create a few useful automated test cases rather than many that have to be thrown away or reworked later when some small changes are made to the code.

At this stage, you should also document the scripts you are creating.

However, the most important aspect here is to keep in mind that there are several types of testing. There is Unit Testing, Integration Testing, Regression Testing, End-To-End Testing and so on. Each of these focuses on different aspects of the software. For example, the purpose of Unit Testing is to isolate and test the smallest units of your software, classes, functions, or simple modules.

Don’t forget your deployment pipeline

Finally, if you have a deployment pipeline, you should take into account how your automated scripts will fit into it.

You should consider whether they are a part of the continuous testing category and whether they will affect your deployments or will be kept separate.

If you want to integrate the automated tests you created in your CI & CD pipeline and have the application tested before the deployment, you should consider how it will impact the time of deployment.

Conclusion

Test automation should be on everyone’s plate. We are currently delivering code faster than ever and it is necessary to iterate quickly.

If we rely only on manual testing, then not only will the implementations take much longer to be available to users, but it is also riskier to introduce changes that may affect and break the application.

Test automation done correctly can bring great benefits to your application but done wrong can pull things down.

**Disclaimer: All views expressed in this article are my own and do not represent the opinions of any entity whatsoever with which I have been, am now, or will be affiliated.

--

--