The testing of software application is an important and essential part of the software development life cycle (SDLC). In the current world scenario, the demand for delivery of software application on time is increasing day by day with maintaining the highest standards quality. 

To fulfill these challenges, automation plays an important role in SDLC by speeding up the testing process and increasing test coverage as well.  It reduces the need of human interaction and helps a tester to carry out testing in a more effective manner by saving time from repetitive and boring tasks.
So, let's know in detail what is automation testing? 

What is Automation Testing?


Automation means the execution of a program without interaction of human being. The execution of the test cases by using an automation tool or third party tool is called automation testing.

It is the process of automating the manual process to test application or the system. In the Automation testing, we use a separate testing tool in which the test script is created and executed repeatedly. The objective of test automation is to perform testing better, faster, reliable, time-saving, accuracy improvement and reducing human-generated error ways.


Benefits of automation testing
Let us understand first why testing is necessary? 

Why testing is necessary or Why should we do testing? 


Testing is done/required in a system 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 bugs or defects on the applications after making a product or application because humans make mistakes all the time. 

Trying to find defects or bugs is an essential part of any application or product development because we are currently unable to produce defect free-system.

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. The ultimate goal of testing is to provide improvement in the quality of products. To achieve these test goals, every test process contains planning activities such as what is needed, what should be tested, and how should execute those test cases.


There is also a universal rule that it is not possible to find and identify all defects and to test everything due to enough time.Let's take an example of testing of a very simple product - a ballpoint pen.

Suppose a company make ballpoint pens and want to sell them. Before to sell in the market, they give one to own working tester with an instruction to test it. This pen can be called as a test object. Now tester will test many different things about the pen. They may be as follows.

1. Does the pen write in the right color and with right line thickness? 
2. Is logo on the pen according to company standards?
3. Is the pen comfortable for people in writing?
We hope that you will have understood from the above example, why testing is required? and why should do testing?

Why Testing is important for us?


Testing is very important because of the following factors. They are as follows: 
1. To identify 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 or software can be improved so that we can give Quality Assurance product to the client and leads to better customer satisfaction. It can indirectly lead to higher revenue. 
➲ To cut down costs.
➲ To Optimize speed and efficiency. 

The objective of the testing is to identify the bugs or defects in the application for improving the quality of the application. But quality cannot be added to the application or any product only at the end by testing. It should be built-in right from start. To check the quality at every development stage by testing is an essential and important part of the development of applications with desired quality.

How to test?


Testing can be done in the following ways. They are as follows:
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. They are as follows:
1. Manual Testing is not accurate at all times due to human-generated error. Hence it is less reliable.
2. Manual Testing is time and money consuming. Automation testing reduces the overall testing cost and human effort.

3. Test automation does not require human intervention. We can run the automated test without attending. Unattended execution of test scripts saves time and human effort.

4. Automation testing improves accuracy and reduces the human-generated error.
5. Automation increases the speed of test execution. It can perform testing much faster than a human can.

6. It supports the execution of repeated and parallel test cases.
7. Automation testing is more reliable than manual testing. 

Which test cases should be automated?


Automation testing is to support manual testing process and not replace it. Achieving automation with 100% functionality cannot be done. There is the following criterion to consider in determining which test cases can be selected for automation.

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. For example, regression test scenarios.

3. Test cases which are very tedious and difficult to perform manually.
4. Test cases which are a lot of time-consuming then you should go to 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 sets of input data. For example, testing the login page with different sets of input 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 the same functionality and chances to get error will be increased.

7. When there is a requirement of running the test cases in a different order. In this scenario, you can design 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 for 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.

Which test cases not to automate?


The test cases which are not suitable for the automation. They are as follows:
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.
3. Test cases for which input data or expected data is not known. 

4. Complex test cases which involve multiple steps unrelated to each other. 

What are benefits/advantages of Automation Testing?


Test automation is essential for any software testing process and provides great benefits in improving the quality and reliability of the results. The benefits of automation testing are as follows:
1. Automation Testing is 75% faster than manual testing. So, we can get better speed in the execution of test cases. In short, automation testing increases test execution efficiency.

2. One of the main benefits of using automation is that it supports the execution of repeated Test cases. This is because a repetitive type of testing is very cumbersome and expensive to perform manually, but it can be automated easily by using automation tools.

3. It supports parallel execution. We can test multiple tests in parallel in different operating system and browsers.

4. The advantage of using test automation is that it improves accuracy and reduces the human-generated error.

5. Automated execution of test cases saves time and money. It reduces the cost of software maintenance. 
6. Human intervention is not required during the execution of test cases.

7. The test script can be reused. Automation helps to create reusable test cases that facilitate the execution of a consistent set of test cases.

8. In automated testing, we can easily analyze test results at the end of execution by determining the number of test cases that passed or failed. If a test case failed, we can analyze reasons for its failure.

But in the case of manual testing, it may be difficult to reproduce test results because exact conditions at the time of failure may not be precisely known.

Disadvantages/Risks of Automation Testing


Automation testing provides better test execution efficiency and accuracy but we should also have aware of disadvantages/risks associated with automation. Let's have a look at them. 
1. The tester should have good programming skills because all the testing tools provide a scripting language to create test scripts.
2. Automation cannot be achieved 100% because all business scenarios or test cases cannot be automated. It requires lot of development efforts. 

3. The initial cost to start automation project is very high because you will have to purchase the automation tool for testing. If you purchase the licenses automation tool, you can use all the commands available in the tool. You can not use all the commands in the trial version.

4. The cost of maintaining the test script and data can be expensive. Scripts require to be regularly updated as per the data changes in the application.

5. Automation testing tools cannot be used to rate and analyze the usability of application.
6. There must be required time for tool selection and framework design. 
7. No single automation tool can support all applications and GUI objects.

Final words
Hope that this tutorial has covered almost all important points related to the basic concept of automation testing with its benefits and disadvantages. I hope that you will have understood this topic and enjoyed it. In the next tutorial, we will learn differences between automation and manual testing.
Next ➤ Difference between Manual vs Automation Testing
Next ⏩