ThoughtWorks
  • Contact
  • Español
  • Português
  • Deutsch
  • 中文
Go to overview
  • Engineering Culture, Delivery Mindset

    Embrace a modern approach to software development and deliver value faster

    Intelligence-Driven Decision Making

    Leverage your data assets to unlock new sources of value

  • Frictionless Operating Model

    Improve your organization's ability to respond to change

    Platform Strategy

    Create adaptable technology platforms that move with your business strategy

  • Experience Design and Product Capability

    Rapidly design, deliver and evolve exceptional products and experiences

    Partnerships

    Leveraging our network of trusted partners to amplify the outcomes we deliver for our clients

Go to overview
  • Automotive
  • Cleantech, Energy and Utilities
  • Financial Services and Insurance
  • Healthcare
  • Media and Publishing
  • Not-for-profit
  • Public Sector
  • Retail and E-commerce
  • Travel and Transport
Go to overview

Featured

  • Technology

    An in-depth exploration of enterprise technology and engineering excellence

  • Business

    Keep up to date with the latest business and industry insights for digital leaders

  • Culture

    The place for career-building content and tips, and our view on social justice and inclusivity

Digital Publications and Tools

  • Technology Radar

    An opinionated guide to technology frontiers

  • Perspectives

    A publication for digital leaders

  • Digital Fluency Model

    A model for prioritizing the digital capabilities needed to navigate uncertainty

  • Decoder

    The business execs' A-Z guide to technology

All Insights

  • Articles

    Expert insights to help your business grow

  • Blogs

    Personal perspectives from ThoughtWorkers around the globe

  • Books

    Explore our extensive library

  • Podcasts

    Captivating conversations on the latest in business and tech

Go to overview
  • Application process

    What to expect as you interview with us

  • Grads and career changers

    Start your tech career on the right foot

  • Search jobs

    Find open positions in your region

  • Stay connected

    Sign up for our monthly newsletter

Go to overview
  • Conferences and Events
  • Diversity and Inclusion
  • News
  • Open Source
  • Our Leaders
  • Social Change
  • Español
  • Português
  • Deutsch
  • 中文
ThoughtWorksMenu
  • Close   ✕
  • What we do
  • Who we work with
  • Insights
  • Careers
  • About
  • Contact
  • Back
  • Close   ✕
  • Go to overview
  • Engineering Culture, Delivery Mindset

    Embrace a modern approach to software development and deliver value faster

  • Experience Design and Product Capability

    Rapidly design, deliver and evolve exceptional products and experiences

  • Frictionless Operating Model

    Improve your organization's ability to respond to change

  • Intelligence-Driven Decision Making

    Leverage your data assets to unlock new sources of value

  • Partnerships

    Leveraging our network of trusted partners to amplify the outcomes we deliver for our clients

  • Platform Strategy

    Create adaptable technology platforms that move with your business strategy

  • Back
  • Close   ✕
  • Go to overview
  • Automotive
  • Cleantech, Energy and Utilities
  • Financial Services and Insurance
  • Healthcare
  • Media and Publishing
  • Not-for-profit
  • Public Sector
  • Retail and E-commerce
  • Travel and Transport
  • Back
  • Close   ✕
  • Go to overview
  • Featured

  • Technology

    An in-depth exploration of enterprise technology and engineering excellence

  • Business

    Keep up to date with the latest business and industry insights for digital leaders

  • Culture

    The place for career-building content and tips, and our view on social justice and inclusivity

  • Digital Publications and Tools

  • Technology Radar

    An opinionated guide to technology frontiers

  • Perspectives

    A publication for digital leaders

  • Digital Fluency Model

    A model for prioritizing the digital capabilities needed to navigate uncertainty

  • Decoder

    The business execs' A-Z guide to technology

  • All Insights

  • Articles

    Expert insights to help your business grow

  • Blogs

    Personal perspectives from ThoughtWorkers around the globe

  • Books

    Explore our extensive library

  • Podcasts

    Captivating conversations on the latest in business and tech

  • Back
  • Close   ✕
  • Go to overview
  • Application process

    What to expect as you interview with us

  • Grads and career changers

    Start your tech career on the right foot

  • Search jobs

    Find open positions in your region

  • Stay connected

    Sign up for our monthly newsletter

  • Back
  • Close   ✕
  • Go to overview
  • Conferences and Events
  • Diversity and Inclusion
  • News
  • Open Source
  • Our Leaders
  • Social Change
Blogs
Select a topic
View all topicsClose
Technology 
Agile Project Management Cloud Continuous Delivery  Data Science & Engineering Defending the Free Internet Evolutionary Architecture Experience Design IoT Languages, Tools & Frameworks Legacy Modernization Machine Learning & Artificial Intelligence Microservices Platforms Security Software Testing Technology Strategy 
Business 
Financial Services Global Health Innovation Retail  Transformation 
Careers 
Career Hacks Diversity & Inclusion Social Change 
Blogs

Topics

Choose a topic
  • Technology
    Technology
  • Technology Overview
  • Agile Project Management
  • Cloud
  • Continuous Delivery
  • Data Science & Engineering
  • Defending the Free Internet
  • Evolutionary Architecture
  • Experience Design
  • IoT
  • Languages, Tools & Frameworks
  • Legacy Modernization
  • Machine Learning & Artificial Intelligence
  • Microservices
  • Platforms
  • Security
  • Software Testing
  • Technology Strategy
  • Business
    Business
  • Business Overview
  • Financial Services
  • Global Health
  • Innovation
  • Retail
  • Transformation
  • Careers
    Careers
  • Careers Overview
  • Career Hacks
  • Diversity & Inclusion
  • Social Change
Software TestingTechnology

Happy 10th Birthday, Selenium

Paul Hammant Paul Hammant

Published: Oct 22, 2014

Selenium as a technology is now 10 years old. ThoughtWorks is proud to have created and open-sourced what is now the defacto-standard for cross platform cross browser web-app functional testing. We’re also proud to have released it as open source for the greater good. 

In honor of its 10th birthday, we put together the below timeline. Here’s to another 10 successful years.

2004

We were making a “Time & Expenses” web application to replace a Lotus Notes version for internal use. Jason Huggins (@hugs - then in ThoughtWorks tech support), was charged with building it. With colleagues he made an early version of Selenium that could obey scripts encoded in HTML tables (now known as Selenium 1 “core” mode).  That’s where I came in (Paul Hammant @paul_hammant). I’m a ThoughtWorker from the consulting practice.

When I took a look, at Jason’s suggestion, I agreed that it was a game changer, but went to work specifying a second mode of operation whereby Selenium could be remote steered over TCP/IP (using techniques that would go on to be described as “Comet”), from Java, C#, Ruby, Python and others. That was “driven” mode or “Selenium B”, with the core mode known as “core” or “Selenium A” (there was a short-lived vitamin theme).

Jason and I share co-creator credits for Selenium (1.0), but many ThoughtWorks staff helped with the implementations in different languages, robustness, and general feature set of Selenium in the early days. Nowadays, the B mode of operation is known as “Selenium Remote Control” or Selenium RC for short.

We also open-sourced Selenium for the world to use and contribute to. Originally it was a ThoughtWorks maintained GForge portal which we’ve long since turned off, even if the code survives in Github. Bret Pettichord (@bpettichord), better known for WATIR (then a Ruby+IE only functional testing technology) as a ThoughtWorker helped us promote Selenium to the testing community.

2005-6

Pat Lightbody (@plightbo - who was secretly building a startup that used Selenium) with Dan Fabulich (@dfabu) and Nelson Sproul (@nasproul), both then at Bea, suggested that ThoughtWorks consume a very large patch that changed ‘B’ into Remote Control permanently. Whereas ‘B’ was two processes on an OS - the script running the test and the browser itself, RC introduced a third process that sat in the middle of the two, and allowed more than one machine to be involved in the execution of Selenium tests. This included tests being scripted from, say, Mac and executed on Windows in IE.  In accepting the patch, leadership of the project immediately became a committee, with consensus being the agreed way to manage it, lasting to this day.

Also in late 2005, in India rather than the US, ThoughtWorker Narayan Raman (@narayanraman) started ‘Sahi’ with ThoughtWorkers in India as an alternate way of scripting the functional testing of web-apps. Sahi’s features included a recording capability that Selenium did not have as well as a different approach for describing a test, but at that time wasn’t a many-language proposition. Today Sahi continues, and “Sahi Pro” has been commercialized by Narayan after he left ThoughtWorks. The Selenium team soon copied many of the advances of Sahi, including its ability to inject code into the page to enhance testability.

Outside ThoughtWorks and the Selenium committee, Shinya Kasatani (@shinya) in Japan wrote a Firefox plugin that effectively wrapped the “core” code into an IDE that would allow record, edit and playback of Selenium scripts. In a follow up release IDE was able to export scripts to Java, C#, Ruby and Python, to allow advanced uses to continue scripts with Selenium RC (and any browser) as the target. Recording, of course, was one the things that Sahi did very well.

2007

After many proof of concept experiments at the end of 2006, Simon Stewart (@shs96c - a ThoughtWorks consultant in Australia) started “WebDriver” in early 2007. By design this competing technology was able to overcome one of the major problems with Selenium RC by turning the browser into a legitimate socket-listener for a remotely commanding process. Whereas RC kind of had one set of JavaScript code that could run in all browsers, WebDriver has idiomatically-correct extensions/plugins for each browser (that meant C++ code, or Java, or JavaScript, or C# with the same features for each each browser). It was better by design, but was an order more complicated to develop than Selenium RC/core. It was worth it because of the limitations that RC had, and it very quickly gained traction inside ThoughtWorks and elsewhere. WebDriver also emulated Selenium RC from the outset, with a bunch of Selenium code utilized in the WebDriver binary. If you had a choice on a project, you would use the WebDriver mode of operation, instead of the Selenium RC mode.

The Selenium committee and Simon (by now a London ThoughtWorker) bumped into each other a lot. During Google GTAC conference in 2007, Pat, Simon and Jason (by then a Googler) discussed a formal reverse-takeover of Selenium. RC (and Core) would become “Selenium 1”, and WebDriver would be “Selenium 2”. The reverse takeover came to be, with Simon and his team added to the Selenium committee, as we rested the old Selenium 1 implementation over a number of years, while preserving it in an emulation.

2008

ThoughtWorker Philippe Hanrigou (@ph7) created 'Selenium Grid' which allowed Selenium RC to be used in expanded capacity. Specifically RC browsers could be leased from an elastic capacity on remote machines. This included the potential for multi-threading tests in parallel from a single test invocation, and utilizing a large number of browser (multi-OS) elsewhere.  This was a clean-room reimplementation of what Pat had already done for his startup, and Jennifer Bevan had done privately for a very large capacity inside Google.

2009

Google (with Simon on board) kindly “introduced” WebDriver in a engineering blog entry :). Jason left Google to launch a startup, SauceLabs, to do cloud testing.

2011

By now, the browser makers were very much aware of the need to contribute to Selenium, or at least be respectful of it. David Burns (@AutomatedTester) contributed a lot to the Selenium2 codebase (Mozilla’s Firefox team would later hire this super star and be first class patrons of Selenium). Opera contributed their own implementation of WebDriver. The Chrome team starts to maintain an executable that acts as intermediary service for WebDriver steering of their browser. Those three are all platforms. Safari on Mac, IE and mobile versions of the key browsers are covered too.

2014

Selenium has for a couple of years been the defacto-standard functional testing tool, with contributions from a hundred or more committers and contributors. All browsers, and all Operating systems is the still the goal. Just about every ThoughtWorks mission uses functional testing with one of Selenium, Sahi or WATIR. Sometime idiomatically, or sometime via accelerating frameworks/libraries, including Twist that ThoughtWorks has also made to lower the barrier to entry for QA professionals.

Pat has had a second successful (acquired) startup leveraging Selenium for performance testing in a elastic cloud capacity. Jason also has one that is still in its expansion mode for functional testing, again in an elastic cloud service. Simon works at Facebook, as ever, on Selenium-related master plans.

Footnote
Selenium is now managed as part of the Software Freedom Conservancy which is a 501(c)(3) non-profit organization. You are very welcome to make donations there.

Did you miss Selenium's 10th Birthday Party in Chicago? Check out the video played after speeches. 

  • What we do
  • Who we work with
  • Insights
  • Careers
  • About
  • Contact

WeChat

×
QR code to ThoughtWorks China WeChat subscription account

Media and analyst relations | Privacy policy | Modern Slavery statement ThoughtWorks| Accessibility | © 2021 ThoughtWorks, Inc.