All the non-IT people may think that these two terms: Automated Testing & Test Automation, are the same thing. It’s just the words are put in a different order. But being IT people, we should be aware of the fact that these two terms have quite a shade that we may need to consider.
Firstly, what is automation? Well! It means using a specific technology to accomplish a task.
Automation in testing is, however, divided into two types as follows:
- The Automated Testing
- The Test Automation
These both terms look so similar to say, but Automated Testing is the work of executing specific tests through automation (for ex: a regression suite) in contrary to running them manually. Whereas, Test Automation means automating the steps carried out for management and tracking of various tests.
The core differences between the so similar terms: The Automated Testing & Test Automation
Humans are known to be blessed with the ability to evaluate thousands of unique patterns, out of which some could be described subjectively while others may be truly complicated, ambivalent or even unstable. Hence, we can only automate a very small range of test areas like looking out for technical bugs (for ex: bugs that crash the app).
1. The difference on the base of meaning
Automated Tests are the selected set of tests that can be possibly automated, usually by the use of a specific programming language.
Here we discuss the test cases individually, be it the simple unit tests or any specific functional or even end to end test cases.
Test Automation is generally a term that includes a quite wide concept and also includes automated tests. It consists of complete automation of the test cycles. It is starting right from the sign until deployment. It is also known as continuous testing.
2. The difference on the base of people involved
Automated Tests: Clearly as described above the automated tests generally include the people who are sound in certain programming language since it is all about writing the test cases or scripts in that programming language. These people are usually testers with sound knowledge of programming language like JAVA, Python, etc.
Test Automation: The process of test automation describes a bigger picture frame including the Developers, Testers, and DevOps. Developers for developing the new feature, testers for ensuring quality and DevOps team for deployment part of the cycle.
3. Difference based on the level of implementation
Automated tests are simply selecting and collecting of specific test cases and then automating them through automation scripts written in certain programming language. This is carried out in the test creation phase by the professional and experienced testers.
Test Automation is basically a cycle which is followed in various environments and at different levels. The cycle generally comprises the following steps:
- CI server picks up the new changes made in the source code
- Unit tests are run
- Automated deployment on an integration environment
- Automated Integration tests are run
- Automated deployment on an acceptance environment
- Automated end to end tests are run
- Automated / Manual deployment on to production
The process/cycle described above is a combined effort of the developers and the testing team where they collectively make the automated tests while the DevOps team automates the deployment.
Is Test Automation limited?
The answer is quite obviously yes. This is due to the very well-known reason that a machine is ultimately created by man and it might not be able to work as good as him.
For instance, if we look at the website as displayed in the above image. A human can easily say that the UI of the website is distorted, but since it contains all the necessary text written all over the place, the automation scripts may pass the script, knowing that everything seems al correct at expected. But, this is actually where human intervention can solve the problem in fractions of a second.
In such cases, the Test Automation becomes limited. And this gives our answer to the next difference.
4. The difference on the base of selection
Automated Tests: These tests are generally the set of test cases that are expected to be used quite a lot of time. Mainly all the common tests that are expected to run on any build at first instance are selected to be changed into automated scripts.
Test Automation: It is not any test case that is talked about when we SAT automation. In this, the whole process of deployment and running test cases are expected to automated to carry out Continuous Integration. The Automated tests created by testers are utilized in the phase of testing that falls in this process. So basically, here we make the selection of the environments on which the deployment takes place step-by-step and the automated tests scripts that are to be run timely after each deployment phase.
What is more important Automated tests or Test Automation?
Well! The answer lies in the definition of both terms itself. Without automated tests, the testing part of Test Automation process cannot be completed. Same goes vice-versa too, that if there is no Test Automation, then the automated tests would not be planned properly for their place of usage.
So, basically both are required for successful delivery of software with all the new changes that are adding up to it, without unnecessarily eating up the QA’s and other team members’ time.
However, we need to keep in mind about the scenarios like that of the previously mentioned image of a website. This type of error may not be handled or recognized by the automated scripts too, as they were earlier automated to check for the text to be present only (which is there). In such cases, the combination of manual testing for such UI issues and Test automation (Continuous testing) could prove a deadly combination for ensuring the quality of any website or software in the process of Continuous Testing and Continuous Integration.