Explore the Magic of AiHealing® for QA - Live Demo

Register Now

Ever since Automation based selenium testing came into existence in the tech industry, it has left an indelible mark and has become the most widely used automated testing method for web-based applications. The incessant need for quality assurance and rigorous testing in complex web and mobile applications has resulted in the market selecting Selenium and it has become the most prominent tool in this space.

So, what is Selenium based automation testing? Basically Selenium commands are used by automation scripts for emulating user actions on a web page. Furthermore, Selenium is an open source automated testing tool available for several dedicated purposes on web-based applications, which provides support for different web browsers, operating systems and programming languages. Selenium is a  software testing suite written in Java and has paved the way to become the de facto product in the quality assurance world.

With the capacity to support numerous programming languages, operating systems and web browsers, Selenium based automation testing has been adopted for use by big technology providers such as Google, HubSpot, Fitbit, Netflix and many more. The whole suite provides solutions to different testing problems and needs.

How did the name Selenium come into existence?

Jason Huggins was the pioneer of the Selenium automation industry. As early as 2000 Mercury interactive was popular and a competitor to Thoughtwork’s. Jason cracked a joked in an email sent to his team at ThoughtWork’s, where he mocked their competitor “Mercury” by specifying that selenium is the antidote for Mercury poisoning! His team took the name, that was how the team approved the name Selenium for their framework.

Brief History of Selenium

The Selenium is a collection of different tools and has contributions from different notable people. The long history of selenium project has different stages with  key individuals contributing immensely to the growth at different stages. Selenium was initially developed by Jason Huggins in 2004 while he was working as an Engineer in ThoughtsWork on a web application that requires frequent testing. He created the program using JavaScript, after using it he realized the shortcomings of manual testing and the need to curb monotony. He originally named the program JavaScriptTestRunner but after realizing the potential of the program, he made it an open source program which he re-named as Selenium Core.

However there were problems. Due to “Same Origin Policy” which prohibits JavaScript from being used from a different Domain name from which it was launched, testers had to go through the stress of installing Selenium Core and Web servers containing web applications to be tested so they can belong to the same domain. Paul Hammant another ThoughtWork’ Engineer offered a solution to this problem by creating Selenium Remote control (Selenium RC) or Selenium 1.

Selenium Grid was developed by Patrick Lightbody for parallel testing purposes which address the need of reducing time spent on test execution to minimal. Selenium automation test was faster as multiple tests can be carried out simultaneously. Shinya Kasatani of Japan contributed by carrying out a project on Selenium IDE in the year 2006. Selenium IDE helps automate the browser through record and playback feature. Simon Stewart created Web Driver Circa in 2006. This tool helps the software testers to perform tests via programmatic approaches using any programming language that is supported.

In the year 2008, the whole Selenium automation testing pioneer team decided to merge the web driver and Selenium RC to form a very useful tool called Selenium 2. Over the years much changes and improvements have taken place and the most recent stable release being Selenium 3.14.0 in August 2018.

Browsers, OS and programming languages supported by Selenium

Selenium commands are used by automation scripts for emulating user actions on a web page. When the automation script is executed, a HTTP request is created and sent to the browser driver for each Selenium command. The browser driver uses a HTTP server for getting HTTP requests which determines the algorithm needed for implementing the Selenium command. These steps are implemented and are executed on the browser. The execution status is sent back to HTTP server which passes status back to the automation script.

Selenium is one of the most extensively used tools in automation testing. Other than being an open source software selenium automation testing is supported by different platforms. Selenium scripts support a wide range of programming languages such as Java, Python, Perl, Php, Ruby, c#. A programmer with the knowledge of any of these can easily perform Selenium automation testing using selenium packages.

Selenium supports cross-browser testing. This means that testing can be performed across all browsers which include Chrome, Firefox, Safari, and IE.

Selenium Automation testing can also be carried out on different Native Operating systems like Windows, Mac, Linux and so on.

Programming languages Browser supports Operating Systems
JavaGoogle ChromeWindows
PythonMozilla FirefoxMac
PerlSafariLinux
PhpIE
Ruby

Selenium tool suite and its components

Selenium is not a single tool, it comprises of a suite of softwares, each catering for a different testing need of a software tester. Selenium suite has four components which include:

Automate testing for your web application in THREE days. Start Free Trial Now

Diagram Showing different Components of selenium suite.

  • Selenium Integrated Development Environment (IDE): In Selenium automation testing Selenium IDE is the simplest framework in the selenium suite. It works as a Mozilla Firefox add-on and as a Chrome extension. You do not require programming skills while operating Selenium IDE. It performs automation tests via records and playbacks. And is mostly use as a prototyping tool. A software tester sometimes finds Selenium web drivers more complicated to start learning with, Selenium IDE is a better alternative and with some plugins can be a better solution to many testing problems. Selenium IDE is not useful to some software testers due to its disadvantages which includes automation test execution is slow and it cannot be used for complex applications where we need support for conditions and iterations.
  • Selenium Remote control (RC): it is now a deprecated component of Selenium suite. It was an alternative to Web drivers. It is a server that was written in Java language. It is the first automation web-based testing tool that supports the use of any preferred programming language which includes: Java, c#, PHP, Python, Perl, Ruby and so on.
  • Web Driver: Most times when Selenium is being discussed, it is mainly focused on this tool. It is the best tool offered by Selenium where software testing is carried out using the programmatic approach.

How Selenium Webdriver works

When the Selenium automation script is executed. The following actions take place:

  • For each of the selenium commands that is executed, an HTTP request is created and sent to the browser driver.
  • The HTTP requests are gotten by the server using the HTTP server.
  • The HTTP server determines the steps required for implementing the selenium command and executes them on the browser.
  • The status of the executed commands is then sent back to the HTTP Server.
  • The HTTP server then sends the execution status to the HTTP server.

To get more details about selenium webdriver read selenium webdriver documentation by SeleniumHQ

  • Selenium Grid: A software tester uses Selenium Grid together with Selenium RC to run parallel tests across multiple browsers. The cross-browser and parallel testing compatibilities help save much time during Selenium automation testing. Selenium grid is also designed to execute multiple tests and distribute the test results through many systems.

Selenium grid implements the Hub-and-Nodes concept. During software testing, the Hub acts as the central source of commands. These commands are distributed to the nodes that are connected to it.

How does Selenium Grid work?

Specify and register the platforms on which the code is written as the Hub Machine.

  • All other platforms with varying system configurations are registered as nodes to the hub machine.
  • So, when we want to run the code on the machine, we pass information to the Hub that we want to run code on platforms with specific system configurations.
  • The Hub examines the nodes and selects a list of platforms with matching configurations.
  • One platform is picked at random from the list and all instructions are forwarded to it for execution.
  • Your code resides at the Hub machine and is executed there, But the browser is opened in the node machine. where it performs all actions as instructed by the code on that node machine.

To get more details about selenium Grid read selenium Grid documentation by SeleniumHQ

Reasons why Selenium is important during Automation testing.

There are numerous testing tools appearing in the market each year. Selenium has managed to stay ahead of them due to its  many built-in advantages. Selenium based automation testing has gained wide range adoption due to these features listed below:

  • Open source software testing tool: Selenium is not the only testing tool on the market, but it’s the only free tool that can compete with paid products. Many tech startups use it due to its cost-effective solution. Even bigger companies do not rush to switch to paid options where thousands of dollars are consumed when a viable option exists.
  • Selenium is compatible with any operating system: Unlike other automation tools in the market selenium has the capacity to operate almost on every OS.
  • Language support: unlike most paid products, Selenium package supports multiple languages during automation testing such as Python, Pearl, Ruby, PHP, .NET, Java and So on. You are only required to be comfortable with one of those languages to be able to create Selenium based automation testing.
  • Cross-browser support: there are ranges of browsers supported by Selenium which include safari, chrome, IE 6, 7, 8 and Mozilla Firefox.
  • Selenium based automation testing is backed by a Google Community which is a very dynamic Developers community. It is also backed by other huge communities such as iDataLabs, Data-driven research companies and so on.
  • To enhance the functionality of Selenium packages during automation testing. Selenium also offers support for integration of various open source frameworks like TestNG, Junit, NUnit and so on. It can also be integrated with Maven, Jenkins and more to achieve Continuous testing.
  • With Selenium based automation testing, it is possible to implement parallel testing. Selenium supports simultaneous tests which are leveraged on various browsers on various machines. This helps to reduce runtime for text execution when performing Selenium automation tests on large projects.
  • Supports Mobile testing: With selenium automation tools you can carry out selenium automation tests using mobile phone with the help of additional softwares such as Appium and Selendroid.

You may like to read

Limitations of Selenium

  • Windows Native application testing: Selenium automation tools supports web-based testing fir Although Selenium supports automation testing on windows applications but the support is not as extensive as it is in web applications. For a software tester to carry out software tests on a windows application he has to integrate additional plugins to enable automation testing.
  • Not ideal for image testing: Carrying out automation tests on images is not an ideal process. The simplest way to carry out image verification is to perform the test manually. This becomes a real problem because it brings back the issue of repetitive testing. This results in software testers ignoring image verifications during Selenium software testing.
  • There is no guaranteed technical support available for Selenium. We need to rely on the available online communities for assistance. However our partner Saucelabs provide extensive documentation and technical support.
  • Steep learning curve: This is due to the deep programming knowledge required to perform Selenium automation testing. A lot of testers shy away from it. One of the recent automation testing trends is codeless testing and many tools such as TestComplete, Ranorex, or Tricentis offer this option.

It is clear that the world is moving towards  web and mobile applications. All types of web and mobile software is being hosted on the world wide web on a daily basis, which serves several purposes. This increases the need for automated web testing services. Selenium automation web-based services have proven to be among the best and most affordable type of web testing services and are continually undergoing constant improvements. Selenium is the defacto choice for automation testing whether on the web or on mobile platforms

Automation at Webomates is much more than basic Selenium scripts. In automation one needs both accuracy and speed. Building on the extensive base of Selenium we achieved enhanced speed by using grid with dynamic fleet of nodes.  Accuracy is a challenge with selenium as on average 40% selenium scripts are bound to fail due to timeout or other Selenium/browser communication issues. Accuracy is obtained by combination of automatic re-execution algorithms and Artificial Intelligence to distinguish between real and false failures.

At Webomates we have optimized testing through combining our patented selenium based Automation and Artificial Intelligence with crowdsource and manual testing. We accelerate peace of mind at deployment, at significantly lower total costs. We offer a regression testing service, to not only guarantee Full regression of every test case ( even modified ones) in under 24 Hours but also to provide triaged video defects. Our customers spend only 1 hour a week on a Full Regression of their software!

If you are interested in learning more about Webomates’ CQ service please click here and schedule a demo or reach out to us at info@webomates.com.

Read Next –

Shift Left Testing

5 Best Practices for Continuous Testing

continuous testing tools in devops

api testing

shift left testing in agile

White box testing

Manual vs automation testing

Smoke testing vs Sanity testing

Requirement traceability matrix

What is Non-functional Testing

Lo code test automation

Spread the love

Tags: , , ,

7 replies on “Selenium Testing Automation : Overview and History”

This is the first blog I read that explains well about selenium testing. I am looking a reference to write a content for our website gcoastit.com. I find your website and article a good source of information.

Hey Dee,
We appreciate your interest, there is another good article on Selenium being published shortly.
Hope you’d like it too. Keep sharing your review.

Hi there, just became alert to your blog through
Google, and found that it is truly informative. I
am going to watch out for brussels. I’ll be grateful if you continue this in future.
Numerous people will be benefited from your writing.
Cheers!

I will right away snatch your rss as I can not
find your email subscription hyperlink or e-newsletter service.

Do you have any? Please permit me recognize in order that I may just subscribe.
Thanks.

Like!! I blog quite often and I genuinely thank you for your information. The article has truly peaked my interest.

It’s the best time to make some plans for the future and it is time to
be happy. I’ve read this post and if I could I want to suggest you
some interesting things or advice. Perhaps you can write next articles referring to this article.
I want to read more things about it!

Leave a Reply

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

AT&T's Success Formula: Download Our Whitepaper Now!


Search By Category

Test Smarter, Not Harder: Get Your Free Trial Today!

Start Free Trial