In this post, we will discuss on the high level about the major differences between manual testing and test automation. The comparison will be done based on the key differences including timing, human effort, tools, training, and infrastructure.
Timing & Human Effort
The most important factor to consider before starting the testing is the time required to do testing. In manual testing, the effective time required will be much more as compared to test automation.
The main reason behind it is the human effort required to execute the test cases. It will be much more in the first iteration and it's consistently required for subsequent iterations to execute test cases written in previous iterations. Though we can reduce the human effort by identifying the key test cases and prepare a regression pack of previous iterations, still it needs human effort and prone to leave a defect goes untested.
On another side, test automation needs less time as compared to manual testing since we need to write the test cases once and can execute the whole set of test cases written in previous iterations without needing human effort. The main concern to start test automation is application stability. We can have few iterations of manual testing to stabilize the application before starting test automation to avoid frequent updates of automated test cases.
The best strategy to write automated tests is to have some level of manual testing done before starting test automation. In some cases, it might be project demand to start test automation right from the beginning of the project.
Another thing to consider for both type of testing is the availability of the right tools for maintaining the test cases.
Manual testing can be managed simply by using an excel document or google spreadsheets at the initial level. In more complex scenarios where multiple teams are involved in testing, Unified Functional Testing (UFT) formerly known as Quick Test Professional (QTP) from HP is the best companion. It provides options to import the test scenarios and cases written using spreadsheets. Another popular tool to manage test assets involved in manual testing is TestLink which is also open source and freely available as compared to UFT.
Test Automation needs skilled resources familiar with the automation tools. Selenium is the most sophisticated and widely accepted and popular among test automation tools to test web-based applications. Another free tool to test web applications, APIs and mobile apps is Katalon Studio.
UFT can also be used to write automated test cases for both web and mobile applications and APIs using VBScript.
Having right manpower with right skills based on project need is the major factor to start test automation since it needs the resource to be familiar with programming. Whereas manual testing does not need the resource to be familiar with any programming languages.
As mentioned in the Tools section, we can see that it's easy to start manual testing since it needs lesser time to train the resources as compared to test automation where the resource is expected to have some level of technical competency.
In the end, having a test automation resource in the project is handy in the long run if the software is mid to large sized.
Infrastructure & Cost
It's another factor we need to consider before planning for both types of testing.
We need more manpower in case of manual testing to manage test assets and execute the test cases but needs less investment to start testing and mid-range systems can do the job here.
At the same time, test automation for most of the advanced use cases needs software licensing and high-end systems to run the tools, though it needs less manpower.
The cost involved in setting up the infrastructure for test automation will always be higher as compared to manual testing. In the long run, the overall cost involved in test automation will be lower as compared to manual testing.