AUTOMATION TESTING PROCESS :
(1) TEST TOOL SELECTION : Selection of test tools highly depends on the technology the Application Under Test is built on. For instance, QTP does not support Informatica. So QTP cannot be used for testing Informatica applications. It’s a good idea to conduct a Proof of Concept of Tool on AUT.
(2) DEFINE THE SCOPE OF AUTOMATION : The scope of automation is the area of your Application Under Test which will be automated. Following points help determine scope:
(a) The features that are important for the business.
(b) Scenarios which have a large amount of data.
(c) Common functionalities across applications.
(d) Technical feasibility.
(e) The extent to which business components are reused.
(f) The complexity of test cases.
(g) Ability to use the same test cases for cross-browser testing.
(3) PLANNING, DESIGN, AND DEVELOPMENT : During this phase, you create an Automation strategy & plan, which contains the following details-
(a) Automation tools selected.
(b) Framework design and its features
(c) In-Scope and Out-of-scope items of automation.
(d) Automation testbed preparation.
(e) Schedule and Timeline of scripting and execution.
(f) Deliverables of Automation Testing.
(4) TEST EXECUTION : Automation Scripts are executed during this phase. The scripts need input test data before there are set to run. Once executed they provide detailed test reports. Execution can be performed using the automation tool directly or through the Test Management tool which will invoke the automation tool. For Example: Quality center is the Test Management tool which in turn it will invoke QTP for execution of automation scripts. Scripts can be executed in a single machine or a group of machines. The execution can be done during the night, to save time.
(5) MAINTENANCE : Test Automation Maintenance Approach is an automation testing phase carried out to test whether the new functionalities added to the software are working fine or not. Maintenance in automation testing is performed when new automation scripts are added and need to be reviewed and maintained in order to improve the effectiveness of automation scripts with each successive release cycle.
AUTOMATION FRAMEWORK :
A framework is set of automation guidelines which help in –
1. Maintaining consistency of Testing.
2. Improves test structuring.
3. Minimum usage of code.
4. Less Maintenance of code.
5. Improve re-usability.
6. Non Technical testers can be involved in code.
7. The training period of using the tool can be reduced.
8. Involves Data wherever appropriate.
There are four types of frameworks used in automation software testing:
1. Data Driven Automation Framework
2. Keyword Driven Automation Framework
3. Modular Automation Framework
4. Hybrid Automation Framework
TYPES OF AUTOMATION TESTING :
AUTOMATION BASED ON THE TYPE OF TESTING :
(1) FUNCTIONAL TESTS : These are written to test the business logic behind an application. Automating these mean writing scripts to validate the business logic and the functionality expected from the application.
(2) NON-FUNCTIONAL TESTS : These tests define the non-business requirements of the application. These are the requirements related to security, performance, databases, etc. These requirements can remain constant or can be scaled as per the size of the software.
AUTOMATION BASED ON THE PHASE OF TESTING :
(1) AUTOMATION OF UNIT TESTS : These tests are run during the development phase itself, ideally by the Developer after the completion of development and before handing over the system to the testers for testing.
(2) AUTOMATION OF API TESTS : API tests are run during the integration phase. These may be run by the development or testing team and can be run before or after the UI layer is built for the application. These tests target the testing based on the request and response on which the application is built.
(3) AUTOMATION OF UI BASED TESTS : UI Based tests are run during the test execution phase. These are specifically run by the testers and are run only once before the UI of the application is handed over to them. These test the functionality and business logic of the application from the front end of the application.
AUTOMATION BASED ON THE TYPE OF TESTS :
(1) UNIT TESTS : These are the tests that are made to test the code of the Application and are generally built into the code itself. Unit tests target the coding standards like how the functions and methods are to be written. These tests are more frequently written by the Developers themselves, however, Nowadays, Automation testers are also asked to write them. Performing these tests and getting no bugs or errors from them will mean that your code will compile and run without any code issues. These tests usually don’t target the functional aspects of the application and as they target code, it is more appropriate to automate them so that they can be run as and when required by the developer.
(2) SMOKE TESTS : The smoke test is a popular test executed in the test life cycle. These are post-build tests, they are performed immediately after any build is given out of the application to assure that the application is still functioning after the build is done. This is a small test suite and is something that will be performed several times and thereby it makes sense to automate it. These tests will generally be of a functional nature and depending on the type of application a tool can be picked for them.
(3) API TESTS : API testing has become quite famous in the past few years. Applications built on the API architecture are able to execute this testing. In API testing, the testers validate the business layer of the application by checking the request-response combinations for the several API’s on which the application is made. API Tests can also be done as a part of the integration tests below.
(4) INTEGRATION TESTS : As the name itself suggests means testing the application by integrating all the modules and checking the functionality of the application. Integration testing can be done through API testing or can be done through the UI layer of the application.
(5) UI TESTS : These are done from the UI layer or the frontend of the application. These may target testing the functionality or simply test the UI elements of an application. Automating the UI to test the functionality is a common and general practice. However, automating the GUI features is one of the more complicated and complex automation.
(6) REGRESSION TESTS : One of the most commonly automated test suites is the regression test suite. Regression, as you may already know, is the test that is done at the end of testing a new module to asaure that none of the existing modules have been affected by it. It is repeated after each new iteration of testing and the main test cases stay fixed with usually a few new additions after a new iteration. As it is oftenly run, almost all the test teams try to automate this pack.
(7) AUTOMATION AS CONTINUOUS INTEGRATION : Continuous Integration may again be running on the automated regression tests itself, however, in achieving CI, we enable the regression or identified test suite to be run every time when a new deployment is done.
(8) SECURITY TESTS : Security testing can be both functional as well as a non-functional type of testing which involves testing the application for vulnerabilities. Functional tests will compose of tests related to authorization etc., whereas non-functional requirements maybe test for SQL injection, cross-site scripting, etc.
(9) PERFORMANCE TESTS AND QUALITY CONTROL : Performance tests are non-functional tests which target the requirements like testing of load, stress, scalability of the application.
(10) ACCEPTANCE TESTS : Acceptance tests again fall under functional tests which are usually done to ensure if the acceptance criteria given by the client has been fulfilled.
TOP 5 AUTOMATION TESTING TOOLS :
(1) SELENIUM : It is a software testing tool used for Regression Testing. It is an open source testing tool that provides playback and recording facility for Regression Testing. The Selenium IDE only supports Mozilla Firefox web browser.
(a) It provides the provision to export recorded script in other languages like Java, Ruby, RSpec, Python, C#, etc.
(b) It can be used with frameworks like Junit and TestNG.
(c) It can execute multiple tests at a time
Auto-complete for Selenium commands that are common.
(d) Walkthrough tests.
(e) Identifies the element using id, name, X-path, etc.
(f) Store tests as Ruby Script, HTML, and any other format.
(g) It provides an option to assert the title for every page.
(h) It supports selenium user-extensions.js file.
(i) It allows to insert comments in the middle of the script for better understanding and debugging.
(2) RANOREX STUDIO : Ranorex Studio is an all-in-one tool for automating functional UI tests, regression tests, data-driven tests and much more. Ranorex Studio includes an easy to use click-and-go interface to automate tests for web, desktop, and mobile applications.
(a) Functional UI and end-to-end testing on desktop, web, and mobile.
(b) Cross-browser testing.
(c) SAP, ERP, Delphi and legacy applications.
(d) iOS and Android.
(e) Run tests locally or remotely, in parallel or distribute on a Selenium Grid.
(f) Robust reporting.
(3) RATIONAL FUNCTIONAL TESTER : It is an Object-Oriented automated Functional Testing tool that is capable of performing automated functional, regression, data-driven testing and GUI testing.
(a) It supports a wide range of protocols and applications like Java, HTML, NET, Windows, SAP, Visual Basic, etc.
(b) It can record and replay the actions on demand.
(c) It integrates well with source control management tools such as Rational Clear Case and Rational Team Concert integration.
(d) It allows developers to create keyword associated script so that it can be re-used.
(e) Eclipse Java Developer Toolkit editor facilitates the team to code test scripts in Java with Eclipse.
(f) It supports custom controls through proxy SDK (Java/.Net).
(g) It supports version control to enable parallel development of test scripts and concurrent usage by geographically distributed team.
(4) WATIR : It is an open source testing software for regression testing. It enables you to write tests that are easy to read and maintain. Watir supports only internet explorer on windows while Watir webdriver supports Chrome, Firefox, IE, Opera, etc.
(a) It supports multiple browsers on different platforms.
(b) Rather than using proprietary vendor script, it uses a fully-featured modern scripting language Ruby.
(c) It supports your web app regardless of what it is developed in.
(5) LAMBDA TEST : LambdaTest is one of the leading cloud based cross browser testing platform which empowers users to perform automated compatibility testing of their website or web applications on a combination of 2000+ real browsers & OS.
(a) Automated Cross Browser Testing on 2000+ real Browsers & OS.
(b) One click bug logging with tools like JIRA, Asana, Github, Slack, Monday.com etc.
(c) Integration with various CI/CD tools like Circle CI, Jenkins, Travis CI etc.
(d) Live interactive testing through VM hosted on LambdaTest cloud.
(e) Automated screenshot testing on 25 combinations at a time.
* Checkout our previous "AUTOMATION TESTING (1)" blog to learn more about Automation Testing.