Once upon a time, in a by-the-seat-of-your-pants programming galaxy, when developers prayed for bigger and better testing automation, a tool called Selenium was born.
A story isn't a story without a good hero and villain dynamic. Then again, not every story is about good versus evil. Sometimes opposing teams can join forces against a common evil. In Selenium’s case, it was a universal software development nemesis: automation.
Mercury is a toxic substance that can be found in fish. Selenium helps detoxify Mercury by forming a strong binding affinity for Selenium that produces a mercury-selenium substance that is unabsorbable by the human body. In the programming universe – a ruthless land of polarizing opinions — there’s only one Mercury-Killer.
In the early 2000s, the market for automated testing solutions was largely uninhabited, minus a few options like Mercury QuickTest Professional for building functional and regression test suites, and Google, which was only a couple of years old at the time. Jason Huggins was another developer with a testing problem. And so, the Selenium project was born.
After some time working on the new tool, Huggins learns about Mercury when testing legend and author, Bret Pettichord, jokingly tells Huggins that if he keeps working on this automation project, it could likely be a “Mercury Killer.” Huggins, frantically searching for a witty response, emails Pettichord back, accidentally making the name association of Selenium as the cure for Mercury poisoning. See, Dad jokes do come in handy sometimes.
Fast forward a few years — Huggins is now working at Google and Simon Stewart is hacking away at a project that will become WebDriver. In 2007 at the Google Test Automation Conference, after seeing Stewart’s live demo of Webdriver — Huggins realized that was the real Mercury Killer.
“Much of the magic of Selenium was running JavaScript in a webpage. But it was limited by the security context of what a browser could and could not do…One example [is], if an alert box or a ‘print dialogue’ box popped up on the screen, JavaScript can trigger that. Selenium, at the time, couldn’t… the ‘OK’ button is owned by the operating system, not the browser.”
With Selenium being three years in, any changes would be like refactoring “a car into a plane — you can’t just add wings to it and make it fly… Simon came at this from the operating system level to be able to do anything and was not architecturally limited: if a print dialogue popped up, he could tell the script to go click it.”
And just as Selenium and Mercury form a symbiotic bond out in the wild, developers belonging to different projects can form mutualistic partnerships as well. After Simon Stewart’s demo, Huggins went to him and said: “Everything I just saw is mind blowing … and should be the future of the Selenium project.” Selenium had the brand appeal, and Webdriver gave it the extra "kick" it needed to overcome its architectural limits.
As the years progressed and Selenium improved, it sort of began to click for Huggins, who saw the value of working on projects at scale (Huggins was working at Google on Selenium Farm, at the time):
“If you’ve got 100 tests and they all take a minute to run, let’s get 100 machines.”
This idea alone, also, deserved a name. All these machines are like Selenium on steroids, or SOS. But as the technology improved, SOS just didn’t seem like enough. Selenium Acceleration Using Cloud Execution, or S.A.U.C.E (coined by John Dunham, then CEO and co-founder alongside Huggins of what was to be Sauce Labs), itself wasn’t sticky enough.
Sauce by itself? Hm, there was a ring to it, but "Sauce" was already taken by a lot of projects at the time.
Now, to add 'Labs' or not to add 'Labs'?
Sauce Labs? Now we’re in business.
Tune into the full story and hear from Huggins himself.
Take a lesson out of Jason Huggins’ book: when you want to make something better, it’s okay to ask for help. “Do or do not; there is no try.”
Selenium turns 20 this year! To mark this milestone, we’ve giving away exclusive Selenium Falcon t-shirts. Want to snag one? Just contribute to the Selenium project. Writing code isn't the only way to contribute. Here are a few other ways:
Answer questions
Provide feedback in issue comments
Reproduce bugs
Write insightful blog posts
Share your experiences on social media
Your contributions help make Selenium better for everyone — and now they can also get you some cool swag. Enter to win by filling out the form below and showcasing your support for Selenium. Thank you for being a vital part of the journey.
May the source be with you.
For 150 lucky contributors - a free shirt is one contribution away!