First of all I prefer to use the term: Automated Checking rather than Automated Testing. Why do I prefer automated checking than automated testing? It is because most of the time it is not doing testing, it is just checking whether the actions that you have scripted give an output as expected (because you command it as expected) is equal with the actual output. It does not really do the actual test. It is just doing what you have been told it to do. Testing is more than just executing test scripts or test cases.
Testing in my definition is questioning the test mind map object that you have created in your mind, whether it is accepted, whether it has an added value to the software, whether it does not give a blocking error etc. It is repetitive searching and questioning the actual values of the application or the object to test. Testing is continuous and expanding action to find out what is good, what is bad and what is probably in the middle. But check automation can not create or expand its own script. Automated checking can not determine whether a scenario is good or bad. Automated checking can not choose another path or script which is not written by humans.
Therefore, I prefer to use the term of automated checking if it is only about checking whether the actions it has carried out are working as expected. It is only checking whether the changed development code bring bugs to the other current code. If there is any tools that can create its own test script just by adding a plugin or a connector to the system under test without any human interference, then I will be happy to call it as Autonomous testing.
However, there is also another perspective of automation in software testing team. In my opinion, automation in testing team should actually help them to reduce the annoying or repetitive task that they have to do without the necessity of using their brain.
Some examples of these are:
- Create a script that helps them to directly go to the intended testing module without have to be bothered with login and navigating through several things before they can actually do the real testing.
- Create a test script for the previous released functionality. It will be used as the regression test script.
- Create a test script to cover the bugs reported by the testing team and has been fixed by developers. Therefore the testing team does not need to revisit this all the time. It will be good as example for sanity testing.
- Helping tester or team to create a bunch of test data.
- Scripts that can help to do smoke test.
Happy testing!