At my day job I have started working again on our websites and after hearing many people talk about how great the JQuery JavaScript library is, I’ve started working with it. This library is absolutely incredible. If you are doing any kind of JavaScript work on the web, you really should take a little time to explore this library (tutorials here). It makes what used to be a tedious task requiring writing custom JavaScript and testing for browser incompatibilities and just makes it built-in. John Resig and the rest of the folks that have worked on this library have made it a thing of beauty (They also have put together an incredible set of UI JavaScript elements as well – JQuery UI). Now while I have definitely become a JQuery fanboy, I wanted to write about a related project that John Resig put together.
One of the issues when writing one of the greatest in-browser JavaScript libraries ever is testing all of your changes across the various OS and browser versions. The test suite for ensuring that there are no new bugs or regression bugs is very extensive. The hardware that would be required to have implementations of all of the OS’s and browser flavors for testing would be very expensive and prone to lots of maintenance.
John approached this problem in a wonderful distributed format with an application he calls TestSwarm. He created an application that allows end users to load up their browser and allow it to wait for tests that need to be run to be sent to it from the central server. So by opening up a browser window to a certain page, it polls for any work to do. If it finds something to do, it pulls the test, executes it and sends the results back to the central server. This allows JQuery to be tested easily across many OS and browser implementations and quickly find any bugs that may appear.
Here is John’s original blog post about TestSwarm. Being the forward thinker that he is, John also designed the code so it can be adapted to run any kind of distributed JavaScript testing, not just JQuery.
Kudos to John on a great application. Go check it out, sign up, and donate a couple of spare CPU cycles to the cause.