ALTRES India Software Testing

Automating Testing With Selenium WebDriver

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.
  •  

    Evolution of automated software testing

    The Evolution of Automated Software Testing

    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:

    • 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

    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
    Scripting language Java, C#, Perl, Python, JavaScript, Ruby, PHP VBScript Java/Groovy JavaScript, Python, VBscript, Delphi, C#, C++ Ruby
    Price Free Paid Free Paid Free
    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

    • Supports many programming languages like Java, Python, C#, Ruby, Perl, PHP, and JavaScript
    • 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

    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:

    1. Automate the application
    2. Create a test suite in an Excel sheet
    3. Trigger the test suite from Jenkins
    4. Execute the test suite
    5. Select a driver (Chrome, Safari, Internet Explorer, Firefox)
    6. Identify and implement keywords in an Excel sheet with parameters: values, type, action, input
    7. Execute the functionality by calling the respective Excel sheet
    8. Perform action based on the functionality selected
    9. Results and errors are updated in the main Excel sheet
    10. 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.

     

    Continuous integration of automated software test execution at ALTRES Technologies

    Continuous Integration of Test Execution

    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.