What is Automation?

The execution of a program without the interaction of the human being is called automation.

What is Automation Testing?

The execution of the test cases by using an automation tool or third party tool is called automation testingIt is the process of automating the manual process to test the application or the system.
In the Automation testing, we use a separate testing tool in which the test script is created and executed repeatedly. 
Automation Testing, Disadvantages of automation testing, Manual testing vs Automation testing
Let us understand that why we do testing? 

Why should we do testing?  or  Why is testing required?

Testing is done/required because we all make mistakes. Some of those mistakes are not important but some of them are expensive or dangerous. Therefore we need to check or identify the bugs/defects/issues on the applications after making a product or application because humans make mistakes all the time. Since we assume that our work may have mistakes or bugs, hence we all need to check our own work. However, bugs may happen due to wrong assumptions.
Testing is very important because of the following factors. They are as follows: 
➲ To identify the bugs, errors, issues, or defects for making a superior product. As a tester, if you identify the bugs as much as on the application, you will have to report the bugs to the developer. The developer will come up with fixing the bugs. During this process, the application becomes stable. Once the application becomes stable, it will improve the quality of the application.
➲ By identifying and fixing the bugs, the quality of the application will be improved so that you can give Quality Assurance product to the client.
➲ To cut down costs.
➲ To Optimize speed and efficiency. 

Objective of the Testing: To identify the bugs or defects on the application for improving the quality of the application.

How to test?

Testing can be done in the following ways. They are:
1. Manually
2. Automation by using Selenium, WinRunner, LoadRunner, QTP.
3. Combination of both Manual and Automation.
Now we hope that you understand the importance of  Testing but here, a question arises why Automation Testing is required and where we can also do manually?

Why is Automation Testing required?

Automation Testing is required due to the following reasons:
➲ Manual Testing is not accurate at all times due to human-generated error. Hence it is less reliable.
➲ Manual Testing is time and money consuming.
➲ Automation does not require Human intervention. You can run the automated test without attending. 
➲ Automation improves accuracy and reduces the human-generated error.
➲ Automation increases the speed of test execution.
➲ It supports the execution of repeated and parallel test cases.

Which test cases should be automated?

There is the following criterion from which test cases can be selected to automate.
1. High Risk and Critical test cases.
2. When there is repetition or a need to run the test cases number of times in a test cycle.
3. Test cases which are very tedious and difficult to perform manually.
4. When the test cases are a lot of time-consuming then you should automate your test cases.
5. Automated testing is also the best way to complete the testing efficiently when it comes to load testing.

6. When you need to run the same test cases with multiple data, the Data-driven automation testing framework is the best way to use for minimizing your effort and time. The data is fetched from external sources such as excel sheet and passes the multiple data to each test cases. but in the manual test case, you get bored of testing same functionality and chances to get error will be increased.

7. When there is a requirement of running the test cases in the different order. In this scenario, you can design the scripts for getting the order but in manual testing, you will have to remember the order, or you will write the order in some other files(.doc, .txt, excel).

8. Automation testing is very useful if you want to generate the test report. Mostly all automated testing tools generate test reports automatically when the test cycle completed. This will make the job easy of identifying defects.

Keeping these points in mind, you can find the best approach in any given testing situation and can achieve the quality output in your project.

The test cases which are not suitable for the automation:
1. When test cases are newly designed and not executed manually at least once then it is not suitable for automation.
2. When the requirements of test cases are often changing then it is not suitable for the automation.

What are the advantages of Automation Testing?

There are so many advantages of Automation Testing. They are as follows:
➲ Automation Testing is 75% faster than manual testing. So you will get better speed in the execution of test cases.
➲ It supports the execution of repeated Test cases.
➲ It supports parallel execution. 
➲ Improves Accuracy and reduces the human-generated error.
➲ It saves time and money.
➲ Human intervention is not required during the execution of test cases.
➲ It increases efficiency.
➲ The test script can be reused.

Disadvantages of Automation Testing

➲ The tester should have good programming knowledge.
➲ Automation is not 100%. 
➲ The cost of automation is very high because you have to purchase the automation tool. If you purchase the automation tool, you can use all the commands available in the tool. You can not use all the commands in the trial version.

Manual Testing vs Automation Testing

Both manual and automation testing have some advantages as well as disadvantages. In manual testing, test cases are executed manually by a human without any support from tools or scripts but with automated testing, test cases are executed with the help of tools, scripts, and software.
     In manual testing, Different methods are available such as Black box testing, White box testing, Integration testing, System testing, Acceptance testing, Performance testing, and Load testing. Some of these methods are better suited for manual testing and some are best performed through automation.
Let's discuss a brief comparison between automation testing and manual testing:
SN Manual Testing Automation Testing
1. Manual testing is not accurate all time due to human error. Therefore, it is less reliable. Since Automation testing is performed by tools or scripts. So it is more reliable.
2. Manual testing is time-consuming, taking up human resources. Automated testing is performed by software tools. So it is faster than any manual approach.
3. Investment is required for human resources. Investment is required for testing tools.
4. To execute the test cases the first time, manual testing will be very much useful. But it is not sure that defects will not come when any change occurs, later on, changing requirements. Automation testing is very much useful where the code changes frequently.
5. Manual testing will be useful when the test cases need to run once or twice. Automation testing will be useful when we want to execute the set of test cases frequently.
6. To execute the test cases every time tester requires the same amount of time. After making the Automation test suites, The fewer tester required to execute the test cases.
7. Using the manual testing, testing on a different machine with the different OS platform combination is not possible concurrently. To execute such task different testers are required. Automation testing can also be done on different machine with different OS platform combination, concurrently.
8. Manual testing requires less cost than automation. Initial cost of automation testing is more than manual testing but useful always.

Final words:
We hope that this article has covered almost all the important topics related to the basic Automation Testing tutorial. Every point is very important for testing and Interview purpose.