Fundamental Concepts of Test Automation

What is Test Automation?

Automated Software Testing or Test Automation is the process of automating the manual test cases.  This also involves comparing the run time data with the test data provided, and producing useful Test Results.

Test Automation tool – What we can expect?

To test a software, a manual testing engineer needs to do the following basic actions:

  1. Click a button, link, image (or any such control on the AUT)
  2. Select radio button
  3. Check / Uncheck a checkbox
  4. Type into an Edit box or controls which resemble edit box

But also he needs to get the run time data from the application and compare with the test data provided (i.e. checkpoints).  For this actually, we will be extracting the values from an edit box, button, link, image, table, drop down list, etc.

All of these basic features are provided by Test Automation tools such as QTP.  There are many test automation tools which allow users to record user actions and replay them any number of iterations, compare the actual results with the test data and generate results.

Why Test Automation?

Since the abundance of software development tools available in the market the productivity of the developer is dramatically increased over the past years. To manage the quality of the product developed it is essential to thoroughly test all the features of the application. If the application is a large software product having lot of features, then it is very much difficult to test by manually executing the test cases. There will be a lot of pressure on testing team to test more and more functionalities in less time. Hence, the Automation Testing has become an integral part of software development.

Benefits of Test Automation:

  • Execution is Less Time Consuming: Automated tools execute the test cases (test script) faster than manual test case execution. Hence, in less time, more end-to-end test cases can be covered during test execution.
  • Un-attended mode execution: There is no need of human intervention for the execution of entire Test Automation Suite for regression testing.  But, to achieve the unattended mode execution, the automation framework has to be properly designed.
  • Repeatable: The test suite can be executed multiple times on the application under test.  For example, if there is a need to test the application on different browsers and environments, we need to just change the configurations of the test automation suite and execute. In case of manual execution, we would need one more resource to execute the same set of test cases on different environment / browser.
  • Reusability: The test suite can be built in such a way that the functions or methods written are highly reusable across the framework.  Also, the entire test suite built with a proper framework can also be utilized for different versions of the application under test.
  • Consistency of Test Execution:  There is a chance of manual tester making errors during execution of test cases. But, the test suite being automated we can expect no or zero errors during execution. For example, if there is a need to enter a value in an edit box such as 7693178.87651, a manual tester might make mistakes (as this is a big number with five decimal values) but the automation tool will not make any mistakes. It will enter the same value even if the test is run for many times.
  • Better Coverage: As the time required to execute automated test suite will be less compared to manual test case execution, more number of test scenarios can be covered during the execution. Hence, we can expect better coverage.
  • Cost Effective: Once the test suite is completely ready for regression testing, the resources required will be less compared to manual test execution.  This reduces the cost of testing.

Key factors to be considered in Test Automation:

  • Test automation is expensive as it involves testing tools as well as skilled professionals.
  • Size of the Regression Test Suite: Generally, a recommendation is made for test automation if there is a long regression cycle.
  • Tool compatibility: Test Automation tool has to be compatible with the application under test.  A comprehensive tool evaluation has to be conducted and a best suited tool should be recommended for automation testing.
  • No. of Regression Cycles: If there is a need to execute the automated test suite against many builds / releases then the test automation becomes cost effective and beneficial.

Comments 2

  • The article is brief although all the main keys are defined and explain properly. One thing I recognized most is the Key factors to be considered in Test Automation. It is very direct to the point which I also agree on these key factors.

  • Great collection of information. Automation Testing is very helpful as our resources because we can save resources and time. Since all the test cases cannot be automated, the emphasis should be on automating those test cases that are high on priority or that have high chances of failure. The high activity application paths like invoice generation, order placement, integration points between two components or applications, critically important processes and the areas that need repetitive testing are perfect cases for automation.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.