Last Friday Jason Huggins aka @hugs popped into the office to talk about Sauce Labs, a business set up to commercialise the Selenium open source testing framework. Jason is outstanding company- he was showing off arduino-powered 3d plastic gizmos before he even sat down (if you’re looking for a local 3d lazer-cutting shop in Chicago just ask @hugs).
What is Selenium? The wikipedia definition covers the bases pretty well:
Selenium is a portable software testing framework for web applications. Selenium provides a record/playback tool for authoring tests without learning a test scripting language. Selenium provides a test domain specific language (DSL) to write tests in a number of popular programming languages, including C#, Java, Ruby, Groovy, Python, PHP, and Perl. Test playback is possible in most modern web browsers. Selenium deploys on Windows, Linux, and Macintosh platforms.
Selenium was originally developed by Jason Huggins, who was later joined by other programmers and testers at ThoughtWorks. It is open source software, released under the Apache 2.0 license and can be downloaded and used without charge.
In case you were wondering- Selenium the element does indeed neutralise Mercury… And that’s also Jason’s plan.
Selenium Remote Control is a Java-based server that can run tests developed in multiple languages- you can see why Selenium is popular at Google…. Indeed Jason actually worked at Google for a while- he still does a fair bit of contracting there.
Jason was at least two years ahead of the market. Smart guys often are. When AJAX blew up, so did Selenium. Adding to that momentum, Selenium IDE is a Firefox plugin which allows the easy creation of tests, but also the recording, edit, viewing and debugging of tests. The ease of use massively expanded the Selenium user base.
In many ways Selenium IDE is the real synapse trigger. Testing should be about observability. If we’re building synthetic transactions what do they actually look like? Which brings us to Sauce Labs.
Sauce Labs offers a hosted environment designed to package up all the Selenium goodness. One intriguing part of using the system is that it records a video of every test created. And rather than being secretive about testing, Sauce OnDemand takes a fairly open and useful social network approach. Users can easily tag and share tests, to learn from each other. For Jason and SauceLabs testing needs to be all about observability. If we’re going to simulate browser activities then it makes sense to be able to watch the “user” flow.
Unlike HP Mercury tools, which were designed for a world where QA is seperate from AppDev which is separate from ops management- the key design point for Jason is agile and continuous deployment. Selenium is designed for continuous integration, and as such it works out of the box with popular continuous integration servers such as Hudson.
Jason is smart, open and totally committed to what he is doing. He has a community to serve, with a lot of people that will pay for services. SauceLabs is set to benefit from the current major transition from waterfail to continuous deployment and devops. Oh and did i mention performance testing the cloud for HTML5 apps? Timing is everything.