For the past few days, I've been working with software called Selenium WebDriver, which allows a programmer to control a web browser via code. It's normally used in Quality Assurance testing, automating mind-numbing, repetitive jobs*.
Out of the box it works with the Firefox web browser, which just happens to be my preferred browser. With (usually) minimal tweaking, other browsers can be supported.
A Firefox security update was waiting for me yesterday morning. Which, in addition to providing valuable protection against online malfeasance, also broke my Selenium code. At least for Firefox. For various reasons--among them not liking Chrome--I switched to another computer, where I will not be allowing updates until this project is done. I expect that at some point the Selenium folks will release a new version to catch up with whatever changes the Firefox developers made. (Checking the bug reports, it looks like this happens intermittently...and I wasn't the first one to notice this time.)
Apart from grumbling to the Twitterverse about the "virtue is its own punishment" collision of responsible web browsing and programming, I can't legitimately be upset. Firefox is the only major browser that's not the flunky of an operating system (Internet Explorer for Windows or Safari for Mac or, arguably, Chrome for Android tablets) or the table-scraps of a large corporation (unarguably Google Chrome). Selenium, likewise, is a pro-bono effort...complete with a PayPal "Donate" button. (For the record, a portion of the proceeds from this gig will be donated to the Selenium project.)
In fact, the situation opened my eyes to the fact that I'm doubly privileged to be a coder in a world where open-source software is an internet connection away (possibly even downloaded via an open-source browser from a server running open source software). Firstly, because programmers will scratch their own itches first, which means a certain bias for programming-related software. Secondly, because I've incidentally picked up at least some of the tools necessary to bolt things together to scratch my particular itches.
- - -
* For instance, let's say you're a QA person and those pesky software developers have been told to make a change in a very complex series of web forms. Let's say it's the sign-up for your company's services. In other words, it has to be bullet-proof or your company will lose money, right? Your job is to try to find the weak spots in its Kevlar jacket so they can be patched--before your potential customers ever see it.
Now, you could manually type and click to attempt things like submitting forms with incomplete, nonsensical, or potentially dangerous data. And along the way you visually verify that the programmers haven't done something weird to the layout and/or look and feel. And, oh, you need to take screenshots of anything that goes kerblooey so you can attach that to the bugs reports you will inevitably send back to the programmers.
So you fire up Firefox and do aforesaid typing and clicking for multiple test cases. And then you do it again in Chrome. Then Safari. Then the current version of Internet Explorer that's installed on your workstation. Then you log into multiple virtual terminals and check Internet Explorer 10, 9, and (gack!) 8.
And once the programmers have--allegedly--fixed the bugs you found this time, you will do it all over again.
That's where this kind of software comes in.
Now, that takes some up-front time and cooperation from people who code and possibly even SysAdmins. But for mission-critical web pages, there's really no excuse not to do it for the long run.