The race between Automation Testing(Rabbit) and Manual Testing(Tortoise)
Karthikeyan Rajendran
Selenium 3&4 | Spring Boot | Playwright | Cypress | Postman | RestAssured | Supertest | Restful API | GraphQL | Contract Testing | Micro-service | Gatling | K6 | Locust | JMeter | Performance Engineering | SQL
Shall we start the race between Manual Testing and Automation Testing………………
Oh! Yaaaaaaaaaaa………………….
One,,,,,,,,,,,,, Two,,,,,,,,,,, Three,,,,,,,, let's gooooooooooooooooooo
When we think about the test automation, ours first assumption is "Can test automation replace manual testing fully?" This is a common misconception and we will see why?
The answer is the test automation can't replace manual testing fully, it acts like catalyst for manual testing. Yes, test automation speed up the manual testing process and offer the test result in quick way. If the process takes long-running time, frequent releases and seeking quicker feedback, the automation is a trump card for you.
We can test a new version of software in two ways, one is regression test and another one is new feature test. The regression test usually takes a long time and has to be performed often, hence should be automated. The test that the new functionality meets its specification has to be performed for the first time but will be a part of the regression test from the next release. Therefore, it should also be automated.
In exploratory testing, a tester uses his or her creativity, analytic skills and experience to learn about the application under test and find new, unaccounted for ways of highlighting defects. Since this is a highly cognitive process that requires intuition and original human thinking, it cannot be automated.
There are many other situations where a computer cannot replace the insight, experience and understanding of a tester. The role of a tester demands a lot of personal communication, often involving the feelings of others. A good tester has the drive to find defects, a quality machines do not possess. Finally, software is made for humans with particular thoughts, needs and feelings and thus has to be tested by someone who can understand and experience these emotions in the same way.
Finally, “Machines don’t know what they are doing? It’s simply doing their work according to instruction and protocols. To ensuring that, a piece of software meets the needs of another human being. For this, tester act as a vital role. Because of the tester creative, analytic and deep understanding skill “.
At the end, Manual Testing(Tortoise) wins the race.
The reason behind “Why did the Manual Testing(Tortoise) win the race?” is
· Test automation requires too much of effort at the initial stage which is not suitable for testing small applications.
· Manual testing can do testing of the application in all environments while automation tools do not support all environments. For example, windows support Windows platform only. It does not support UNIX environment. Selenium supports web application, it does not support the desktop application.
· For Usability testing, ad-hoc testing, and exploratory testing, Manual Testing is required, as manual testing is based on human judgment and intuitions and testing is based on experience and knowledge, one is having. Automation tools can’t do all types of testing. It can’t judge look and feel of the application. Manual testing is must in cases where the software application is required to be made more user-friendly, as a manual tester can learn more about user perspective. For that Usability testing is required which requires understanding the application from the user point of view.
· 100 % automation of test cases is not advisable. It has been observed that only 70-75% test cases are automated as there are many scenarios where automation testing is not possible. For example for testing mobile device application functionality, human interaction is required. Also, there are cases which require a great deal of effort to automate the test case which is of not of that business value, manual testing is suitable in those cases.
· It should be noted that manual testing is always necessary and forms an important part of Software Development Life Cycle. Manual testing is convenient and immediate. New functionality can be tested quickly. No need to create and maintain script for testing new features of the application or small changes in the application.
· Automation testing is not suitable for dynamic changing layouts. Automation is required in the cases which do not undergo many alternations.
· Also, automation testing is time-consuming, as script creation and debugging are required is required to test the application and sort out script issues.
· It is not possible to test the application immediately and cannot reproduce customer issue immediately, in the case of automation testing. Manual testing takes less time to give a productive output of testing.
· Automation testing can only find defects for which it is programmed. It cannot change the course of testing in the middle if anything has been left untested previously.
· Automation Testing involves more cost. Also, more skilled resources need to be hired and involve the cost of the tool if it is licensed. It is not best fit for short project or project with the limited testing budget.
· There is always need for manual testing as, during software development life cycle, software is continuously developed and modified. It is not possible to quickly develop the script for such large number of test cases immediately. So, Automation is done for stable application with least changes, for a better return on Effort and Investment, after a lot of manual testing is done, to have application stable.
· Proficiency is required for using automation tool. Testing resources should have programming knowledge supported by the tool being used. A tester should be having tool handling capability to produce the productive testing output through the tool. For manual testing, no programming skill and no tool knowledge is required and can do comprehensive testing without this knowledge.
· It is only after manual testing done, application undergoes automation testing to perform regression and re-testing frequently. Manual testing and Automation testing involves different skill sets and it is manual tester who guide Automation tester to design the test scenarios for automation.