by Arti Bhavsar
To ensure the agility to deliver quality products quickly, there is an ever-growing emphasis on having quality assurance (QA) embedded throughout the software development lifecycle. Manual testing no longer meets the requirements for speed and robustness, so automation testing has become the de facto standard for QA.
Automation testing reduces the time and cost to develop or enhance the product.
Automation testing is developing and executing test scripts for verification of requirements and comparing the actual test results with expected outcomes using an automation tool/framework. The automation tools/frameworks help in creating and executing robust test scripts by providing built-in common components and utilities.
This article offers a brief overview of the evolution of automation testing and explains how ALTRES Technologies uses Selenium WebDriver for quality assurance.
Evolution of Automation Testing
Over time, the test automation process has become extensively advanced and refined. The evolution is shared below:
- First Generation: Record and Playback
Provides basic features to record the steps to execute the functionality and create scripts to playback.
- Second Generation: Reuse of Function
Modular frameworks used to build re-usable test functions which can be used across multiple scripts.
- Third Generation: Separation of Data and Scripts
Separating data from the scripts helps to reduce the amount of scripts for testing various data scenarios and also provides flexibility and control to business users.
- Fourth Generation: Action Keyword Scripts
Keyword driven testing takes the test script creation close to the real world scenarios. The keywords are stored in data files and execution is driven by business logic based on keywords.
- Fifth Generation: Codeless Automation
The world is now moving towards the next generation of frameworks where the automation tests would be created without writing a single piece of code.
- Code reusability, which minimizes the time needed to write and maintain tests with defined standards
- Easy installation and maintenance of the framework
- Support for multiple types of testing
- Support for multiple operating systems and browsers
- Common components and utilities in a framework
- Minimum impact of functionality of changes on the test scripts
- Integration with test management and version control tools
- Ability to schedule runs of builds
- Capacity for use of multiple data sources
- Ability to manage errors during execution
- High performance capability
- Log of results and statistics in multiple formats
- Supports multiple operating systems (OS) and cross-browser testing
- Supports testing on various devices (Android, iPhone, and Blackberry)
- Easy to identify and use web elements
- Easy to implement by creating scripts
- Helps reusability of scripts and add-on tools
- Scripts can be built using a keyword-driven framework
- Server is not required to run Selenium WebDriver scripts
Key Features of Automation Testing Frameworks
A test automation framework is an execution environment for automated tests which provide standards, common components/functions, and other utilities required for writing and executing test scripts as well as reporting outcomes.
Key features of automation testing frameworks include:
Comparison of Automation Tools
There has been an evolution of multiple products over a couple of decades. The following table provides a high-level comparison of key products in the market.
|Product||Selenium WebDriver||UFT||Katalon Studio||TestComplete||Watir|
|Created by||Jason Huggins in 2004||Mercury Interactive in 1998||Katalon LLC in 2015||Smart Bear Software in 1999||Bret Pettichord and Paul Rogers in 2008|
|Application under test||Web application||Web, mobile, desktop application||Web, mobile application||Web, mobile, desktop application||Web application|
|Platform support||Windows, Linux, OSX||Windows||Windows, Linux, OSX||Windows||Windows, Linux, OSX|
|Continuous integration||Jenkins||Quality Center/ALM or Jenkins||Jenkins||Jenkins, Team Foundation Server, Microsoft Build Engine, Bamboo||Jenkins|
Selenium WebDriver as Automation Testing Tool
Selenium WebDriver, created by Jason Huggins, is a free automation testing tool used for testing a web application on different operating systems and browsers. Over one-third of users prefer Selenium over other tools.
Primary Features of Selenium WebDriver
Application of Selenium WebDriver at ALTRES Technologies
ALTRES Technologies uses a keyword-driven testing framework. Each keyword stimulates the actions in the testing application. Each keyword resembles a respective testing action like a click, selecting an option from a dropdown, window open and close, or other actions.
At ALTRES Technologies, Selenium testing is done with the help of Jenkins. Jenkins schedules the tests to run at specific times. A scheduled night build triggers all the test cases and the status of the test cases execution is updated in the Excel sheet. Execution details and test reports are maintained in Jenkins. It supports Maven/TestNG framework for building and testing a project.
The following steps are followed for test execution:
- Automate the application
- Create a test suite in an Excel sheet
- Trigger the test suite from Jenkins
- Execute the test suite
- Select a driver (Chrome, Safari, Internet Explorer, Firefox)
- Identify and implement keywords in an Excel sheet with parameters: values, type, action, input
- Execute the functionality by calling the respective Excel sheet
- Perform action based on the functionality selected
- Results and errors are updated in the main Excel sheet
- All drivers and functionality-specific Excel sheets are included in the projects
The Way Forward
Work is in progress towards continuous integration of test execution using Jenkins as part of the build process.
ALTRES has seen a lot of value added with the implementation of Selenium for regression testing. Test cases are executed repeatedly with the same accuracy and give prompt results to ensure there are no impacts on the existing functionality of the product.