Selenium Tutorial : Project
2. The Selenium Project
2.1. Overview
One of the most popular testing frameworks for web applications as of today First open-source test framework using an user-centric point of view Supports javascript Unintrusive and doesnt need any modifications of your app to test it
Selenium, as of today, is composed of several projects :
Selenium Core The JavaScript framework that provides Selenium the ability to drive the browser and execute the tests
Selenium IDE The Firefox plugin used to build test-cases and test-suites directly on top of your web-app. You can also export your tests to Selenium RC.
Selenium RC A client/server system that allows you to execute tests written in a variety of languages on a local or remote computer and on all major browsers.
Selenium Grid Selenium Grid leverages Selenium RC to provide a test environment that spans on multiple machines at once, reducing the testing time.
Selenium on Rails A framework that is built especially to test applications running on the Rails framework.
CubicTest An Eclipse plugin which purpose is to conceive and execute tests using the pageObjects pattern.
Bromine A simple web-based QA tool targeting the single tester that doesnt want/cant invest in complex corporate QA solutions.
2.2. Selenium And The Web Testing Frameworks
While being very popular, Selenium is not the ultimate all-in-one testing tool and you should NOT rely on Selenium only to test your applications. The following chart helps you situate Selenium among the web-testing stack. Code/Process Testing Overall app Acceptance testing: Selenium Fully rendered browser testing views, executing Javascript on page closest to the user, farthest from code Integration Multi-controller tests : htmlunit, webrat, cucumber Views View testing in isolation : rspec, Selenium (see Section 9.1.2, Unit testing) Controllers Functional Testing/Controller testing DB/Models Unit testing/Model Testing : server side, depends on backend technology
2.3. History
Selenium project started back in 2004 at ThoughtWorks, in Chicago under the name of JavaScriptTestRunner.
At first, built by Jason Huggins, Paul Gross and Jie Tina. Soon, his colleague Paul Hammant saw a demo and pushed for an open-source release as well as to expand it with a driven mode from a client using any language. Dan Fabulich and Nelson Sproul from Bea decided to improve Selenium and bundle the browser driver code into a standalone server, Selenium Remote Control. Pat Lightbody, worked with Dan and Nelson to improve and stabilize it. Shinya Kasatani in Japan found interest in Selenium and started to work on Selenium IDE. In 2007, Jason Huggins joined the then secret Selenium team at Google and with other Googlers like Jennifer Bevan worked on a grid capability to test some of Googles public applications. Google presented their use of selenium at the 2nd Google Test Automation Conference (GTAC) and Jennifer was invited to join the Selenium team. The same year, Haw-bin Chai in Chicago developed the UI Element extension, which he was invited to merge into Selenium IDE by joining the team. Meanwhile, Simon Stewart worked on another tool called WebDriver. Soon, it was decided that the two projects should merge for Selenium 2.0 and joined Google to make it happen. Nowadays, Erik Beans does much of the work at Google.