Selenium is a testing framework to perform web application testing across various browsers and platforms like Windows, Mac, and Linux. Selenium helps the testers to write tests in various programming languages like Java, PHP, C#, Python, Groovy, Ruby, and Perl. It offers record and playback features to write tests without learning Selenium IDE.
Selenium proudly supports some of the largest, yet well-known browser vendors who make sure they have Selenium as a native part of their browser. Selenium is undoubtedly the base for most of the other software testing tools in general.
What is selenium and how it works?
Selenium is an automation test framework or an API that works with Java, C#, Perl, Ruby, Python and Groovy programming languages to automate the browser activities. In order to work with selenium RC selenium provided a server and it was required to run the server to start the execution of automation scripts.
What is Selenium testing used for?
Selenium is a portable framework for testing web applications. Selenium provides a playback (formerly also recording) tool for authoring functional tests without the need to learn a test scripting language (Selenium IDE).
Why do we use selenium?
Selenium is an open source tool which is used for automating the tests carried out on web browsers (Web applications are tested using any web browser). ... We can neither test any desktop (software) application nor test any mobile application using Selenium.
Advantages of Selenium
1) Selenium is an Open Source Software.
(All Selenium Projects (Selenium IDE, Selenium RC, Selenium WebDriver and Selenium Grid) released under the Apache 2.0 license, It is free to use, anybody can download the source code and use, modify the source code according our company requirements, but selling modified code is not allowed.)
2) Selenium supports various programming languages to write programs (Test scripts)
We can use any one the above languages, most of the Selenium Testers using Java (nearly 77%).
Selenium IDE (one of the tool in Selenium’s Tool suite) doesn’t support any programming.
UFT (Formerly QTP) supports VBScript only to write Test Scripts.)
3) Selenium supports various operating systems (MS Windows, Linux, Macintosh etc…)
(Once we create Test Cases on any Operating Environment (Ex: MS Windows), they can be executed on other supported Operating Environents (Ex:Linux, Macintosh Etc… easily)
4) Selenium supports various Browsers (Mozilla Firefox, Google Chrome, IE, Opera, Safari etc…)
(Once we create Test cases then execute the Test Cases using all Popular Browsers without any changes in Test Cases. Browser driver only varies from one Browser to another Browser but Test cases are same.
Note: Selenium IDE (one of the tool in Selenium’s Tool suite) supports Mozilla Firefox Browser only.)
5) Selenium supports Parallel Test Execution.
(Using Selenium Grid we can execute Tests in Parallel, so that we can reduce the Test execution Time).
6) Selenium uses less Hardware resources.
(When it compares to Vendor Tools like UFT, RFT, SilkTest etc… Selenium requires less Hardware Resources)
Disadvantages of Selenium
1) No reliable Technical Support from anybody.
(Since It is Open Source software nobody providing reliable technical support, if it is UFT/QTP Vendor (HP) provides Technical Support)
2) It supports Web based applications only.
(Selenium automates Web browsers only, using Selenium we can automate Computer Web Applications and Mobile Web Apps, but Selenium doesn’t support Computer Desktop Applications, Mobile Native Applications and Mobile Hybrid Applications.)
3) Difficult to use, takes more time to create Test cases.
(Selenium WebDriver (Powerful tool in Selenium’s Tool suite) has Programming interface only, no IDE, so we have to write steps for each and every task they take more time.
If it is UFT/QTP has Programming interface as well as IDE, we can Tool features (Ex: Recording, Checkpoints, Data Table etc…) and VBScript features (Ex: Condtional statements, Loop Statements, Functions etc…) to create Tests/Test Scripts.)
4) Difficult to Setup Test Environment when it compares to Vendor Tools like UFT, RFT, SilkTest etc…
(Selenium uses various tools and plug ins to support Test Automation, we need configure them manually, if it vendor tool like UFT/QTP we just download and install the tool (all required components were integrated by the vendor))
5) Limited support for Image Testing.
6 New features may not work properly.
(Since it is open source software nobody is responsible for new features usage, they may or may not work properly, it is vendor tool (Ex: UFT or RFT or SilkTest), vendor is responsible for new features usage.)
7) No Test Tool integration for Test Management.
(No Tool available in the Selenium’s Tool suite to support Test Management, we have to choose any tool from the market, If it is UFT, ALM is there for integration of Project/Test Management tasks.)
8) No Built-in Reporting facility.
(Selenium WebDriver doesn’t have built in Result Report facility, we need to take help from either JUnit ot TestNG Testing Framework to genrerate Test Reports.)