Automation Testing or Test Automation is a software testing technique that performs using special automated testing software tools to execute a test case suite. On the contrary, Manual Testing is performed by a human sitting in front of a computer carefully executing the test steps.
The automation testing software can also enter test data into the System Under Test, compare expected and actual results and generate detailed test reports. Software Test Automation demands considerable investments of money and resources.
Successive development cycles will require execution of same test suite repeatedly. Using a test automation tool, it's possible to record this test suite and re-play it as required. Once the test suite is automated, no human intervention is required. This improved ROI of Test Automation. The goal of Automation is to reduce the number of test cases to be run manually and not to eliminate Manual Testing altogether.
Why Test Automation?
Test Automation is the best way to increase the effectiveness, test coverage, and execution speed in software testing. Automated software testing is important due to the following reasons:
Manual Testing of all workflows, all fields, all negative scenarios is time and money consuming
It is difficult to test for multilingual sites manually
Test Automation in software testing does not require Human intervention. You can run automated test unattended (overnight)
Test Automation increases the speed of test execution
Automation helps increase Test Coverage
Manual Testing can become boring and hence error-prone.
Which Test Cases to Automate?
Test cases to be automated can be selected using the following criterion to increase the automation ROI
High Risk - Business Critical test cases
Test cases that are repeatedly executed
Test Cases that are very tedious or difficult to perform manually
Test Cases which are time-consuming
The following category of test cases are not suitable for automation:
Test Cases that are newly designed and not executed manually at least once
Test Cases for which the requirements are frequently changing
Test cases which are executed on an ad-hoc basis.
Automated Testing Process:
Following steps are followed in an Automation Process Step 1) Test Tool Selection Step 2) Define scope of Automation Step 3) Planning, Design and Development Step 4) Test Execution Step 5) Maintenance
Test Automation Process
Test tool selection
Test Tool selection largely 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.
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:
The features that are important for the business
Scenarios which have a large amount of data
Common functionalities across applications
Technical feasibility
The extent to which business components are reused
The complexity of test cases
Ability to use the same test cases for cross-browser testing
Planning, Design, and Development
During this phase, you create an Automation strategy & plan, which contains the following details-
Automation tools selected
Framework design and its features
In-Scope and Out-of-scope items of automation
Automation testbed preparation
Schedule and Timeline of scripting and execution
Deliverables of Automation Testing
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.
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.
Test Automation Maintenance Approach
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 executed 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.
Framework for Automation
A framework is set of automation guidelines which help in
Maintaining consistency of Testing
Improves test structuring
Minimum usage of code
Less Maintenance of code
Improve re-usability
Non Technical testers can be involved in code
The training period of using the tool can be reduced
Involves Data wherever appropriate
There are four types of frameworks used in automation software testing:
Data Driven Automation Framework
Keyword Driven Automation Framework
Modular Automation Framework
Hybrid Automation Framework
Automation Tool Best Practices
To get maximum ROI of automation, observe the following
The scope of Automation needs to be determined in detail before the start of the project. This sets expectations from Automation right.
Select the right automation tool: A tool must not be selected based on its popularity, but it's fit to the automation requirements.
Choose an appropriate framework
Scripting Standards- Standards have to be followed while writing the scripts for Automation. Some of them are-
Create uniform scripts, comments, and indentation of the code
Adequate Exception handling - How error is handled on system failure or unexpected behavior of the application.
User-defined messages should be coded or standardized for Error Logging for testers to understand.
Measure metrics- Success of automation cannot be determined by comparing the manual effort with the automation effort but by also capturing the following metrics.
Percent of defects found
The time required for automation testing for each and every release cycle
Minimal Time is taken for release
Customer Satisfaction Index
Productivity improvement
The above guidelines if observed can greatly help in making your automation successful.
Benefits of Automation Testing
Benefits of Automation Testing
Following are the Test Automation benefits:
70% faster than the manual testing
Wider test coverage of application features
Reliable in results
Ensure Consistency
Saves Time and Cost
Improves accuracy
Human Intervention is not required while execution
Increases Efficiency
Better speed in executing tests
Re-usable test scripts
Test Frequently and thoroughly
More cycle of execution can be achieved through automation
Early time to market
Types of Automated Testing
Smoke Testing
Unit Testing
Integration Testing
Functional Testing
Keyword Testing
Regression Testing
Data Driven Testing
Black Box Testing
How to Choose an Automation Tool?
Selecting the right tool can be a tricky task. Following criterion will help you select the best tool for your requirement-
Environment Support
Ease of use
Testing of Database
Object identification
Image Testing
Error Recovery Testing
Object Mapping
Scripting Language Used
Support for various types of test - including functional, test management, mobile, etc...
Support for multiple testing frameworks
Easy to debug the automation software scripts
Ability to recognize objects in any environment
Extensive test reports and results
Minimize training cost of selected tools
Tool selection is one of biggest challenges to be tackled before going for automation. First, Identify the requirements, explore various tools and its capabilities, set the expectation from the tool and go for a Proof Of Concept.
Automation Testing Tools
There are tons of Functional and Regression Testing Tools available in the market. Here are best test automation tools certified by our experts
1. 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.
Features:
Functional UI and end-to-end testing on desktop, web, and mobile
Cross-browser testing
SAP, ERP, Delphi and legacy applications.
iOS and Android
Run tests locally or remotely, in parallel or distribute on a Selenium Grid
Robust reporting
2. Testim
Testim is the fastest path to resilient end-to-end tests—codeless, coded or both. Testim lets you create amazingly stable codeless tests that leverage our AI, but also the flexibility to export tests as code. Customers like Microsoft, NetApp, Wix, and JFrog run millions of tests on Testim each month
Features
You can leverage Testim's modern JavaScript API and your IDE to debug, customize or refactor tests.
Store test in your version control system to keep them in sync with branches and run tests on every commit.
Integration with popular tools
3. 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.
It provides the provision to export recorded script in other languages like Java, Ruby, RSpec, Python, C#, etc
It can be used with frameworks like JUnit and TestNG
It can execute multiple tests at a time
Autocomplete for Selenium commands that are common
Walkthrough tests
Identifies the element using id, name, X-path, etc.
Store tests as Ruby Script, HTML, and any other format
It provides an option to assert the title for every page
It supports selenium user-extensions.js file
It allows to insert comments in the middle of the script for better understanding and debugging
4. QTP (MicroFocus UFT)
QTP is widely used for functional and regression testing, it addresses every major software application and environment. To simplify test creation and maintenance, it uses the concept of keyword driven testing. It allows the tester to build test cases directly from the application.
It is easier to use for a non-technical person to adapt to and create working test cases
It fix defects faster by thoroughly documenting and replicating defects for developer
Collapse test creation and test documentation at a single site
Parameterization is easy than WinRunner
QTP supports .NET development environment
It has better object identification mechanism
It can enhance existing QTP scripts without "Application Under Test" is available, by using the active screen
5. 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. The main features of this tool are
It supports a wide range of protocols and applications like Java, HTML, NET, Windows, SAP, Visual Basic, etc.
It can record and replay the actions on demand
It integrates well with source control management tools such as Rational Clear Case and Rational Team Concert integration
It allows developers to create keyword associated script so that it can be re-used
Eclipse Java Developer Toolkit editor facilitates the team to code test scripts in Java with Eclipse
It supports custom controls through proxy SDK (Java/.Net)
It supports version control to enable parallel development of test scripts and concurrent usage by geographically distributed team
6. 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.
It supports multiple browsers on different platforms
Rather than using proprietary vendor script, it uses a fully-featured modern scripting language Ruby
It supports your web app regardless of what it is developed in
7. SilkTest
Silk Test is designed for doing functional and regression testing. For e-business application, silk test is the leading functional testing product. It is a product of Segue Software takeover by Borland in 2006. It is an object-oriented language just like C++. It uses the concept of an object, classes, and inheritance. Its main feature includes
It consists of all the source script files
It converts the script commands into GUI commands. On the same machine, commands can be run on a remote or host machine
To identify the movement of the mouse along with keystrokes, Silktest can be executed. It can avail both playback and record method or descriptive programming methods to get the dialogs
It identifies all controls and windows of the application under test as objects and determines all of the attributes and properties of each window
Summary
Test Automation is a software testing technique that performs using special automated testing software tools to execute a test case suite.
Test Automation is the best way to increase the effectiveness, test coverage, and execution speed in software testing.
Test Tool selection largely depends on the technology the Application Under Test is built on.
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.
The right selection of automation tool, testing process, and team, are important players for automation to be successful. Manual and automation methods go hand-in-hand for successful testing.
Source: guru99
The Tech Platform
Commentaires