What is Automation Testing? When to use? Advantages and Disadvantages

Automation testing refers to the process of testing a software application using automation tools, in order to find defects or bugs in the application. Some people also refer to automation testing as Automated Testing or Test Automation.

This article covers the following topics

  1. What is Automation Testing
  2. Objective of Automating your Tests
  3. When to use Automation Testing
  4. Examples of Automation Testing
  5. Advantages of Automation Testing
  6. Disadvantages of Automation Testing
  7. Type of testing that can be automated
  8. Best Automation Testing Tools
  9. Difference between Manual Testing and Automation Testing
  10. Summary

Selection of manual or automation testing depends on the project requirement, budget available and complexities involved in the application.

In manual testing, testing is done manually by testers. However, in automation testing, automation tools are used to execute your test case suite.

Most automated tools are capable of entering test data into the application, executing the test cases and comparing the actual result with the expected result and prepare detailed test reports. They can do this automatically once the test scripts are executed / run.

What is Automation Testing

Automation Testing is a process by which the testers who have knowledge in automation tools write automated scripts for testing the application.

Automation testing includes testing the application functionality, performance, load and stress.What is Automation Testing

The main drawback of automation testing is that it requires a good amount of investment / money to buy an automation tool license, creation and maintenance of automation test script takes time and automation testers cost more (this is an advantage for automation testers).

However, there are excellent free tools for automation testing like Selenium.

Objective of Automating your Tests

The objective behind automating your tests is to:

  • Simplify the testing effort to the maximum by using minimum test scripts.
  • The automation tools can execute tests and report the results much faster.
  • Automation test scripts can be run at any time.
  • Automation testing is more efficient and less time consuming compared to manual testing.

When should you use Automation Testing?

Automation testing can be used in the following scenarios:

  • When there are less changes happening in the requirement.
  • When you need to run the test cases many times in a test cycle.
  • When the number of test cases to be executed justifies the cost of automation tools.
  • For running the same test cases simultaneously on more than one computer.
  • Manual testing is completed and software is in a steady state
  • Shortage of time
  • To test a particular functionality or single test case with multiple data.
  • When a specific predetermined order is required for running the test cases.
  • Serious and prestigious project, therefore quality matters

Automation Testing Examples

Let us assume that your organization has been assigned a project to develop and maintain a new e-commerce website that sells jewellery. The customer has said that there will be ongoing enhancements to the project and the contract is for 5 years.

There will be several modules like user profile, authentication, shopping cart, product management, product display, payment processing etc.

Automation testers will have to write test scripts and also update them when if there are changes in functionality.

Given the long term contract, it would be beneficial to use automation tools to automate the testing. This will save time in regression testing, smoke testing and other functional tests.

Advantages of Automation Testing

  • Automation testing improves quality and productivity.
  • Though the initial investment is high, automation tool reduces the cost of testing from a long term perspective.
  • Decreases the testing time.
  • Reliable, efficient, consistent and accurate.
  • Automated scripts are reusable.
  • Regression testing is made easy and faster.
  • More rounds of testing can be completed in a short period of time.

Disadvantages of Automation Testing

  • Initial investment is higher.
  • Cannot be used for subjective validation
  • Some complex applications cannot be tested using automation tools.
  • Automated testing cannot be used if the functionality is changing continuously.

Type of testing that can be automated

Automation tools can be used for different types of testing such as:

  • Smoke testing
  • Regression testing
  • Black box testing
  • Integration testing
  • Unit testing
  • Functional testing
  • Keyword testing
  • Data driven testing
  • Load and Performance testing

Best Automation Testing Tools

The popular automation tools used for testing are:

  • Selenium: Open source tool that is used by a majority of software companies. It is used mainly for automating regression test suite.
  • HP Unified Functional Testing (UFT): Formerly known as Quick Test Pro (QTP), it is used mainly for functional and regression testing. UFT is a very popular tool among major corporate companies.
  • Rational Functional Tester: An object-oriented functional testing automation tool. Used for functional, regression, GUI and data-driven testing.
  • Silk Test: Suitable for doing functional and regression testing. It is considered as the best automation tool for testing e-platforms.
  • WebLOAD: Used for doing load and stress testing of web based applications.

Difference between Manual Testing and Automation Testing

Manual Testing Automation Testing
Manual testing is done manually. Automation testing is done using software tools.
Less reliable as it is prone to human errors. More reliable as tools and scripts are used, there is less chance of human error as long as script is correct.
Manual testing is slow. Automation testing is fast.
When executing test cases for the first time, manual testing is more useful. More useful in regression testing when frequent code changes occur.
Manual testing is better when we need to run the test cases once or twice. Automation testing is better when we need to run the test cases frequently.
Cost effective when suite of test cases only needs to be run a couple of times Automation testing requires a higher initial investment but pays back in effort and time saved in subsequent runs.
Highly suitable for testing very complex applications Some complex applications cannot be tested using automation.
Manual testing is necessary for testing subjective validation like usability and look and feel Automation testing cannot be used for subjective validation.

Summary

As we have discussed, selection of manual or automation testing depends on the situation and many factors discussed above. Both manual testing and automation testing are important for excellence in software testing.