Selenium Introduction

Selenium Introduction:

  • What is Automation Testing
  • Benefits of Automation Testing
  • When to automate an application:
  • Steps to follow in Automation testing:
  • Disadvantages of Automation Testing
  • Different Automated Web Testing Tools
  • Selenium Introduction
  • Selenium Pros
  • Selenium Cons
  • Differences between selenium and other Tools

What is Automation Testing?

The Process of converting Manual Test cases into Test Script by using any automation tool is known as Automation Testing.

Testers write test scripts and test cases using the automation tool and then group those test cases into test suites.

Benefits of Automation Testing

Reliable: Tests perform precisely the same operations each time they are run, thereby eliminating human error

Repeatable: You can test how the software reacts under repeated execution of the same operations. 
Programmable: You can program sophisticated tests that bring out hidden information from the application.

Comprehensive: You can build a suite of tests that covers every feature in your application.

Reusable: You can reuse tests on different versions of an application, even if the user interface changes.

Better Quality Software: Because you can run more tests in less time with fewer resources

Fast: Automated Tools run tests significantly faster than human users.

Cost Reduction: As the number of resources for regression test are reduced.

When to automate an application:

Do the Automation testing in the following scenario of the Software,

  • Requirements do not change frequently
  • Access the application for load and performance with many virtual users
  • Steady Software with respect to manual testing
  • Obtainability of time
  • Huge and serious projects
  • Projects that need to test the same areas often

Steps to follow in Automation testing:

There are lots of helpful tools to write automation scripts, before using those tools it’s better to identify the process which can be used to automate the testing,

  • Identify areas within software to automate
  • Choose the appropriate tool for test automation
  • Write test scripts
  • Develop test suits
  • Execute test scripts
  • Build result reports
  • Find possible bugs or performance issue

The following areas must be automated first

  1. Highly redundant tasks or scenarios 
    2. Repetitive tasks that are boring or tend to cause human error 
    3. Well-developed and well-understood use cases or scenarios first 
    4. Relatively stable areas of the application over volatile ones must be automated.

Disadvantages of Automation Testing

Though the automation testing has many advantages, it has its own disadvantages too. Some of the disadvantages are:

• Proficiency is required to write the automation test scripts. 
• Debugging the test script is major issue. If any error is present in the test script, sometimes it may lead to deadly consequences. 
• Test maintenance is costly in case of playback methods. Even though a minor change occurs in the GUI, the test script has to be rerecorded or replaced by a new test script. 
• Maintenance of test data files is difficult, if the test script tests more screens.

Some of the above disadvantages often cause damage to the benefit gained from the automated scripts. Though the automation testing has pros and cons, it is adapted widely all over the world.

Different Automated Web Testing Tools

Automatically testing your web application is a good way to ensure that new versions of your application don’t introduce bugs and regressions.

Automation of your web application testing also allows your development team to make changes and refactor code with more confident, as they can quickly verify the functionality of the application after every change.

However, actually building automated tests for web applications can be challenging because the user interface of your application might change regularly, because of incompatibilities between browsers and because you usually need to support various server or client platforms. The following tools make it easier to build and execute automated tests for your web application.

Selenium – Open Source

Selenium is a popular automated web testing tool and helps you automate web browsers across different platforms. Selenium has the support of some of the largest browser vendors who have taken steps to make Selenium a native part of their browser.

Watir – Open Source

Watir is a set of Ruby libraries for automating web browsers and allows you to write tests that are easy to read and maintain. Watir drives browsers the same way people do (it clicks links, fills in forms, presses buttons etc.) and also checks results such as whether expected text appears on the page.

Windmill- Open Source

Windmill is a web testing tool designed to help testers automate and debug web applications. It comes with a cross-browser test recorder, JavaScript integration and an interactive shell to automate web browsers.

Ranorex – Commercial

Ranorex allows you to automate your web application testing (among other things) and both record user interactions and play them back to execute your tests. Ranorex is one of the more popular commercial tools to build and run automated web and GUI tests.

SoapUI – Open Source

SoapUI is a cross-platform functional testing tool. It has been specifically designed to help automatically test APIs such as SOAP and REST interfaces to ensure the interoperability of different applications.

Sahi – Open Source

Sahi is a tool for automation of web application testing. Sahi is available as a free open source edition as well as a commercial Pro edition.

Tellurium  – Commercial

Tellurium is a web automation tool that allows you to design and write your automated tests using plain English without any scripting or programming experience.

Selenium Introduction

Selenium is an open source tool used for test automation. It is mainly used for automates browsers across different platforms.  (i.e. automating web application). Selenium has the support of some of the largest browser vendors who have taken steps to make Selenium a native part of their browser.

Selenium is a suite of tools:

  1. Selenium 2.0 (WebDriver): It is the current product being used in industries. It has become more powerful and robust automation tool. Selenium 2 still runs Selenium 1’s Selenium RC interface for backwards compatibility.
  2. Selenium 1.0 (Selenium RC or Remote Control): Selenium RC was the main tool used for automation before WebDriver came into picture. Now, It is deprecated and mostly used in maintenance projects.
  3. Selenium IDE: Selenium IDE (Integrated Development Environment) is a Firefox plugin and has capability of record and playback the activity performed on any web Application.
  4. Selenium GRID: It is used to run the multiple test parallels. It can run the test on different browser and different remote machines.

Selenium Pros

  • Selenium has no upfront, out-of-pocket costs. It is a free download and support is free too, although it is community-based.
  • Selenium tests are, in principle, able to run under multiple browsers.
  • Although Selenium has its own script language, you are not limited to writing in that language since it can work with language bindings to support whatever your developers/testers are comfortable with including C#, Java, JavaScript, PHP, Python and others.
  • Selenium scripts are created by recording actions using the web application under test running in a browser. These scripts can be saved and re-run at any time. Selenium tests can be created manually through the use of web development tools such as Firebug also.
  • Selenium does not restrict QA’s choice of reporting tools, build systems or any other aspect of their testing framework. It integrates well with popular tools such as Hudson, SauceLabs, Selenium-Grid, QMetry and others.
  • It also supports web applications that implement part of their functionality within the browser using JavaScript and AJAX technologies.

Because of its many advantages, Selenium finds wide usage for UI, regression, unit and acceptance testing. Because of the rapid test development it enables, it is quite popular for quick-cycle development methodologies such as Agile or Extreme Programming. Selenium is also popular with IT staff who automate repetitive, web-based administrative tasks.

Selenium Cons

  • Selenium is not a complete, comprehensive solution to fully automating the testing of web applications. It requires third-party frameworks, language bindings and so on to be truly effective.
  • Despite its acceptance of other test script languages, it demands higher-level technical skills, such as programming, from QA team members.
  • It has no test management facilities. Test scripts are saved as simple files without attributes. Organizing individual scripts in any fashion via a user interface requires a third-party tool or a custom application.
  • Because native “Selenese” test scripts are not user-friendly in terms of readability, they are difficult to modify. Many testers simply resort to discarding the original scripts and recording them again, which can be time consuming.
  • Selenium does not support test and result sharing in anything but a manual way.
  • There is no support for running tests in parallel on a single computer.
  • Selenium has technical issues with browsers other than Firefox. Furthermore, it does not support conditionals, loops and has trouble finding locators without the help of additional tools such as Firebug.

A final drawback to Selenium, which has nothing to do with Selenium itself, is that it enables over-reliance by testers for testing software layers below the GUI, since test scripts are relatively quick to produce. However, such an inversion of the traditional testing pyramid, especially in end-to-end automated testing environments has serious efficiency and test maintenance issues.

The advantages of Selenium for increasing the efficiency of web application testing at the GUI level outweigh its disadvantages, especially with regard to cost and the shortening of test cycles due to efficient automated test generation. If your organization is willing to tackle the technical and test management issues, Selenium is an excellent tool suite with which to improve the quality of web-based testing.

Differences between selenium and other Tools

Without a doubt, the most dominant commercial player in the market when it comes to functional automation is QTP/UFT. So it’s legitimate to compare Selenium with QTP/UFT.

Comparison Matrix:

Feature QTP(UFT) Selenium
Environment Support Only Windows Windows , Linux , Solaris
OS X , Others (If brower & JVM or
Javascript support exists)
Windows (Non-browser)
based Application support
Yes No
Browser support Google Chrome (uptill ver 23)
Internet Explorer , Firefox ( ver 21)
Google Chrome , Internet Explorer ,
Firefox , Opera , HtmlUnit
Language Support VB Script Java, C#, Ruby, Python, Perl
PHP , Javascript
 Mobile (Phones & Tablets)
support
 Different commercial product i.e.
HP UFT Mobile (formerly known as
MobileCloud for QTP)
 Android , iPhone & iPad ,
Blackberry , Headless WebKit
 Framework  Easily integrated with HP Quality
Center or HP ALM (separate
commercial products)
 Selenium + Eclipse + Maven / ANT
+ Jenkins / Hudson & its plugins /
Cruise Control + TestNG + SVN
 Continuous Integration  Possible through Quality Center
/ ALM or Jenkins
 Possible through Jenkins / Hudson
/ Cruise Control
 Object Recognition
/ Storage
 Inbuilt Object Repository (storing
Element Id, multiple attributes) along
with weightage that gives flexibility
on deviation acceptance in control
recognition
UI Maps and different object location
strategy such as -XPath Element ID
or attribute DOM
 Image based Tests  Easily possible  Possible but not easy
 Reports  Quality Center has in-built awesome
dashboards
 Integration with Jenkins can give
good reporting & dashboard
capabilities
 Software Cost  License & Annual maintenance
fees
 Zero
 Coding Experience of
Engineer
 Not Much  Should be very good along with
technical capabilities of integrating
different pieces of framework
 Script Creation Time  Less  High
Hardware resource (CPU
+ RAM) consumption during
script execution
High  Low
Product Support Dedicate HP support along with
support forums
Open Source Community

Leave a Reply

Your email address will not be published. Required fields are marked *