Automation Testing is a testing process, where the Test Automation tools are used for testing the Software. In this process, initially, the Tester having automation skills will create test automation scripts for the identified test scenarios using any Test Automation tool and later the same Test Automation tool will be used for executing the created test automation scripts. The purpose of Automation Testing is to reduce the number of test cases to be executed manually.
Manual Testing versus Automated Testing:
- Manual Testing: This testing process is performed by a Software Tester who is sitting before the computer machine and executing the required tests on the Software.
- Automated Testing: This testing process is performed by a Test Automation tools like UFT/Selenium/Others by automatically executing the required tests on the Software. Here the Software Tester is not required to sit before the computer machine while the test scripts are getting automatically executed by the Test Automation tools.
How can an Automation tool perform Testing? Using the following steps, the Automation Tools will perform Testing:
- Creating Automation Scripts: Test Automation team develops the automation scripts using the programming language supported by the chosen Test Automation tool. For example, Selenium Test Automation tool supports programming languages like Java, C#, Python, Ruby etc. Test Automation team can choose any one of these supported programming languages for developing the Test Automation Scripts.
- Executing Automation Scripts: Once the Test Automation Scripts are created using the chosen Test Automation tool and supported programming language, the Test Automation team will execute the created Test Automation Scripts using the Automation tool. For example, Test Automation team will execute the Test Automation Scripts using Test Automation tools like Selenium.
- Viewing Test Results Reports generated by the Automation Tool: Once the execution of Test Automation scripts is completed, the Test Automation tool will generate the Test Results Report. Test Automation team will open the Test Results Report generated by the Automation Tool to know the Passing/Failing status of the executed tests.
Example: On executing the Test Automation Scripts using Test Automation tool, the Automation tool will perform all the actions on the application. For example, on executing an Automation Scripts for logging into a Facebook application, the Test Automation tool with the help of programming code written inside the Test Automation script will perform the below steps:
- Test Automation tool will open the Browser window
- Test Automation tool will enter the URL of the Facebook application into the Address Bar of Browser window
- Test Automation tool will verify that the Facebook page is opened
- Test Automation tool will enter the Username into the Username field on the opened Facebook page
- Test Automation tool will enter the Password into the Password field on the opened Facebook page
- Test Automation tool will click on the ‘Login’ button on the Facebook page
- Test Automation tool will verify whether the User with the above credentials got logged in without any errors.
- Finally, Test Automation tool will generate the Test Result Report where the executed Automation script will be marked as Passed if executed as expected. If the Automation script has not executed as expected, the Test will be marked as Fail in the Test Results Report.
More Details on Automated Testing: The below are few points, which help you in understanding Automation Testing in detail:
- Automation Testing can also be called as Automated Testing/Test Automation.
- While the Manual Testing is performed by a Software Tester sitting before a computer machine, the Automation Testing is performed by the Test Automation tool.
- As Test Automation requires investment and resources, Clients needs to invest in Test Automation if they see a Return on Investment (ROI).
- Once the Test Automation scripts are created, the same automation scripts can be executed repetitively in each and every Test Cycle as part of Regression Testing.
- Whenever a developer changes the application, the same automation scripts can be executed repetitively in each and every Test Cycle as part of Regression Testing.
- The purpose of Automation testing is to reduce the number of test cases to be executed manually, but not to completely remove the Manual Testing.
- As it is not a right decision to automate all the test flows in the Application, the tests need to be filtered for Automation testing with an intention of reducing the burden and making the test process more effective.
- The presence of Test Automation team is not required while the Automation Test Scrips are getting executed. Hence Automation scripts can even be executed throughout the night while the Testing team is sleeping.
- Automation Testing is faster, as the executed Automation scripts will take very less time for execution when compared to a Software Testing performing Manual Testing.
- Automation Testing is accurate, as the Automation Tool executing the Automation Scripts won’t do any mistakes, whereas the Manual Testing team may forget to execute the tests or won’t execute the tests correctly.
- While the Automation scripts are getting executed by the Automation tool, the Testing Team can focus on the other areas of the functionality for Testing. Hence Automation testing increases Test Coverage.
- In Manual Testing, the same tests need to be executed repetitively by the testing team. This will make their job boring and result in mistakes while testing. Automation Testing solves this problem by automating the repetitive tests.
- As the repetitive testing will be reduced using Test Automation, the time and burden for testing the repetitive tests for every development change in Application will be reduced.
- As the repetitive testing will be reduced using Test Automation, Clients may get cost benefits when they plan the ROI properly for Test Automation.
- Automation testing is recommended for stable applications. But if any application is not stable (i.e. If application functionality keeps on changing), then the application is not suitable for Test Automation until it gets stable.
- Automation testing is not recommended for short-term projects, where enough time is not available for creating the test automation scripts. Manual Testing will be suitable for short-term projects due to their tight delivery deadlines.
- The main purpose of Automation Testing is to automate the Regression tests, to repeatedly execute them whenever the developers make changes to the code.
Tests suitable for Test Automation: Complete functionality of the application cannot be automated. Instead, the testing team has to spend a considerable amount of time in choosing the right tests for automation. The following are the different types of tests which can be filtered for Test Automation:
- Stable Tests: Tests related the functionalities in the application which are not going to change.
- Smoke Tests: Tests which give a quick and high-level assessment of the quality of the build before moving to detailed tests.
- Data Driven Tests: Tests invovled in testing the same functionality with different data as input.
- High Priority Regression Tests: Tests which are executed repetitively for every code change and have high priority over other tests.
Most popular Test Automation Tools (Functional): The following is the list of open source and proprietary Functional Test Automation Tools which are most popular in the market:
- Selenium: Selenium is a free and open source Test Automation tool for automating the Web Application. This tool has good popularity compared to other tools in the market.
- Katalon Studio: Katalon Studio is a free and open source Test Automation tools which provide a powerful integrated solution for automating Web Applications, Mobile Applications, and their Web Services.
- Unified Functional Testing (UFT): UFT is a commercial Test Automation tool for automating the GUI & Web Services of Desktop, Web and Mobile application.
- Watir: Watir is a free and open source Test Automation tool for automating the Web Application based on the Ruby libraries.
- IBM Rational Functional Tester (IBM RFT): IBM RFT is another commercial Test Automation tool for automating the functional tests.
- Test Complete: Test Complete is another commercial Test Automation tool for automating the web, mobile and desktop applications.
- And many more: Other popular Test Automation tools available in the market are TestPlant eggPlant, Tricentis Tosca, Ranorex, Robot Framework, Coded UI, QMetry Automation Studio, Appium, Squish, Silk Test etc.
Test Automation Process: The following is the Test Automation process which is generally followed in day to day projects:
- Selecting the right Automation tool for the Project: The Test Automation team needs to spend considerable time in understanding the automation needs of the project and based on the application needs the team has to select the right automation tool for the project. In general, a comparative study and analysis will be performed on various Automation tools and the tools which meet most of the requirements will be selected for the project.
- Requirement Analysis: Test Automation team will walk through the application requirements and find out the automation scope (i.e. Functionalities which needs to be Automated).
- Planning: The Test Automation team will create a test plan for automation having the answers for ‘How the Automation Testing will be performed?’ and ‘When the Automation Testing will be performed?’
- Define Test Automation Framework: Once the Test Automation plan is reviewed and approved by the Clients, the Test Automation team will design and develop a Test Automation Framework which suits the Automation needs.
- Developing Automated Scripts: Test Automation team will develop Automation scripts on the top of the above-developed framework.
- Execution & Report Analysis: Test Automation scripts developed in the above phase will be executed. Once the execution is completed and Test Results Reports are generated, the Test Automation team will analyze the failures in the generated reports and report defects for the same into the defect tracking tool.
- Maintenance: During the project, the Application may undergo changes at functional and UI levels. To accommodate these changes, the Test Automation team has to update the earlier created automation scripts.
Conclusion: Test Automation is a testing process, which is performed with the help of Test Automation tools.
Please leave your questions/comments/feedback below.
Happy Learning 🙂
Arun Motoori (www.QAFox.com)