Selenium (software)

From Canonica AI

Overview

Selenium is a powerful suite of tools that supports rapid development of test automation for web applications. It provides a way for developers to write tests in a number of popular programming languages, including C#, Java, Python, Ruby, and others. The tests can then be run against most modern web browsers, on most operating systems, either locally or remotely.

History

Selenium was first developed in 2004 by Jason Huggins at ThoughtWorks. He was working on a web application that required frequent testing. Having realized that the repetitious manual testing of their application was becoming inefficient, he created a JavaScript-based testing tool that could control the browser's actions like a human would. This tool was named "JavaScriptTestRunner."

Seeing potential in this idea to help automate other web applications, he made JavaScriptTestRunner open-source, which was later re-named as Selenium Core.

Components

Selenium is not just a single tool but a suite of software, each catering to different testing needs of an organization. It has four components.

Selenium IDE

Selenium Integrated Development Environment (IDE) is the simplest framework in the Selenium suite and is the easiest one to learn. It is a Firefox plugin that developers can use to record user interactions with the browser. This allows users to quickly and easily record and play back tests in the actual environment that they will be run.

Selenium RC

Selenium Remote Control (RC) was the flagship testing framework of the whole Selenium project for a long time. This is the first automated web testing tool that allowed users to use a programming language they prefer. As of version 2.25.0, RC can support the following programming languages.

Selenium WebDriver

WebDriver is a different kind of tool altogether that has various advantages over Selenium RC. WebDriver directly communicates with the web browser and uses its native compatibility to automate.

Selenium Grid

Selenium Grid is a tool used together with Selenium RC to run tests on different machines against different browsers in parallel. That is, running multiple tests at the same time against different machines running different browsers and operating systems.

Advantages

Selenium is highly flexible. There are many ways to add functionality to both the test scripts and to the framework to customize the test environment. This is particularly useful in complex testing situations.

The Selenium test suite has the capacity for parallel test execution which reduces time and increases the efficiency of testing.

Selenium supports multiple browsers and programming languages. This allows the same test scripts to be used to test multiple browsers and platforms.

Disadvantages

One of the major challenges with Selenium is that it requires third party frameworks to be able to manage the test cases, generate reports, and for data driven testing.

Another disadvantage is that Selenium only supports web application testing, you can't use it for testing mobile applications or desktop applications.

Selenium requires high level technical skills such as programming language knowledge, and it also requires manual coding for automation test case development.

See Also

A screenshot of Selenium IDE in action, showing the record and playback functionality.
A screenshot of Selenium IDE in action, showing the record and playback functionality.