The name Selenium might evoke the chemical element to some, but to developers and testers it brings to mind something quite different. They would probably think of a familiar open source software testing tool that has gained a lot of popularity in the decade of its existence. Many turn to Selenium testing solution as a first resource for testing web applications. Here’s a quick look at Selenium and its components, and an attempt to understand why it is such an ideal choice for many.
Features of Selenium
Selenium began its story in 2004, when Jason Huggins developed it at Thoughtworks. It later moved on to become a collaborative project, also becoming open source along the way. Here are some of its key features that make it attractive to many testers:
Platform Independent: Whether you are a Windows, Linux or Mac user, Selenium will deploy seamlessly for your needs. According to the Selenium documentation, each new release is tested on Windows versions 7, 8 and 8.1. Windows XP was also supported while in use. Other versions are supported as well but tests are not run regularly using these.
Language Independent: Testers can choose to code in a range of languages when using Selenium for their testing purposes. These include C#, Haskell, Java, JavaScript, Objective-C, Perl, PHP, Python, and Ruby. This also enables the use of many frameworks using these languages including JUnit and TestNG.
Use of Multiple Browsers: Depending on the OS that you use in your testing environment, you might work with a variety of browsers including Firefox, Internet Explorer, Safari, Opera and Chrome. Many versions of these browsers are supported by Selenium, and the details of which can be found here.oin our webinar on Selenium WebDriver Implementation using TestNG
Why Selenium
The need for an automated testing tool like Selenium comes in due to the advantages of using automation for most testing environments. While intense testing has to be an integral phase for any product, the ease and speed of performing this testing could be a big differentiator in the product lifecycle.
Reduces manual errors: Performing the same set of cases over and over is a sure way of boredom and errors creeping in. In addition, it would later be tough to trace back and find the origin of the error. Using a tool that helps in automated testing is the ideal method to have a well-executed repetitive set of tests.
Increases speed of execution: Selenium can execute a big list of test cases much faster than any human tester can attempt to complete them. It can also help with parallel execution and quick repetition of test cases, saving a lot of time and money to the organization in the long run.
Open Source: Other than the list of features already mentioned, the open source nature of this testing tool is also a big reason to choose it. This is because the large number of users and the communities involved in developing and supporting Selenium could be a great resource to the amateur developer.
Selenium IDE
If your aim is to perform quick testing operations such as reproducing error or bug scenarios or to do exploratory testing, then Selenium IDE is the part of the Selenium testing solution that you should be looking at in detail. It is available as an extension or plug-in to the Firefox browser and includes all the functionality that is required for fast recording and playback of your test cases in the environment that you need.
Some of the advantages provided by Selenium IDE include:
- Easy recording and playback of test cases with a very short learning curve for a new user.
- Possibility of editing test cases for experienced users with the use of commands in Selenium’s own test language, Selenese. An autocomplete feature for all common commands is included in the functionality.
- Saving of tests as HTML, Ruby and many other formats.
- An extensive set of functions including intelligent field selection, walkthrough feature for tests, debugging including setting breakpoints and customization through the use of plugins.
The Selenium IDE environment allows easy editing of test cases, so that even a new user could start learning the syntax by studying the available list of commands and trying them out. As you continue to use the Selenium IDE environment, it would in fact attempt to predict the command and parameters that you might need for the UI element that is selected on screen.
Selenium Webdriver
An introduction to Selenium would not be complete without mentioning the Selenium Webdriver that can be used to create regression testing suites. This is the successor to the Selenium Remote Control or RC. To create a rigorous test suite using Selenium Webdriver, testers would ideally also make use of a framework to store and organize these tests. Junit and TestNG are the most popularly used frameworks that work very well with Selenium.
In conclusion, if you are looking for a platform and language independent testing solution that includes an easy record and replay functionality, Selenium definitely merits a closer look.