June 13th, 2007



It occurs to me that, having come across another Massively Wonderful Open Source Tool, I ought to talk it up a little.

My current project at work is implementing an automated GUI test harness using Selenium. If you're doing any sort of serious Web development, you owe it to yourself to check this thing out.

Selenium is a fairly complex toolset, but it's all aimed at browser-level testing. There's Selenium Core, a complex Javascript library that lets you manipulate the browser to a fine level of detail; Selenium IDE, which lets you do macro-style testing; and Selenium Remote Control (which is what we're actually using), which lets you control the browser remotely from a separate harness. The end result is that I'm able to write a detailed test suite in NUnit (the .NET equivalent of JUnit), full of fine-grained browser testing: telling the browser to open windows, check what's on the page, click the buttons, and so on just as I want.

It has all the usual virtues and vices of open source. The documentation is a tad crappy, and there are some rough edges. OTOH, it's free, not terribly hard to integrate and use, and impressively powerful. It runs with both Firefox and IE, and the Remote Control system has integration modules for many major development platforms (Java, .NET, Perl, PHP, Python, Ruby, etc).

In a bit over a week of work, I should be able to set up enough harness and examples to hand the thing off to QE and have them continue to automate the GUI-level testing from there. Combine that with the API and Unit test suites we already have, and I'm starting to think we may actually be able to pull off a reasonably agile development style. This tool looks to be exactly what we needed at this point; take a look at it...

Definitions of Self

Surely it says something about my own peculiar variety of anal-retentiveness that, when I'm making up silly one-shot nonsense words like "flooble" to feed into my programs, I go back and correct typos in those words...

Grumble, grumble...

Long day at work, tooling on the new test suites. And what do I find on the way home? An extra-long commute, because *someone* seems to have decided that it would be a good idea to leave dismembered body parts scattered all over Route 128.

Humph. I'll take Rabbit Hole Day any time...