Ian MacLennan: Testing, Always Testing
Who are you and what do you do?
My name is Ian MacLennan. I am currently serving on the Production Leadership Team for the Joomla! Project, the Joomla! Security Strike Team and Co-coordinator of the Joomla! Bug Squad. Other roles I have played include Developer Documentation Team Leader, Joomla! Bug Squad Co-coordinator and Google Summer of Code project administrator. I often end up helping with a variety of tasks to try and make sure things run smoothly.
I have a Bachelor of Applied Science in Electrical Engineering and a Master of Divinity. I currently work for a small, family engineering business that designs custom application doors primarily for the mining industry, the air force and commercial airlines.
I have a beautiful wife and two beautiful daughters who are the treasures of my life.
What hardware are you using?
I don't really own a lot of specialized hardware for the specific tasks I do. One of the neat things about developing for Joomla! is that you don't really need a lot of fancy equipment. I do the majority of my work on my trusty laptop. Coming up on its fifth birthday, it is a 16" Pentium 4M 1.6Ghz with 2 Gigs of Ram and a 120GB hard drive. Over the years I have replaced the hard drive, performed hinge surgery (following this procedure), and most recently replaced the keyboard since I was without a 'U' key for a while (which sucks if you're trying to switch to the unit test directory).
Aside from that I have plans to take advantage of some old hardware I have laying around to serve as test slaves. I do have plans to upgrade my hardware, one of these days.
And what software?
I'm a Linux guy. I first started playing with Linux back in university. I remember taking 40 3-1/2" floppy disks over to the computer lab and downloading Slackware. I flirted with Linux on and off over the years (mostly off) until I discovered Ubuntu in 2006. Since then I've been hooked and I now run Linux on just about anything I can. Beyond that, I use a variety of tools, including Eclipse, Gedit, VIM, PHPUnit, Hudson and Selenium.
GEdit is nice and light. I like it because it is quick and easy; I can navigate and edit without any of the bloat that Eclipse has. Eclipse is nice when I want a debugger. It's what I turn to when I want to try and watch a variable and track down evasive bugs. VIM because I can edit files over SSH quickly and easily. VIM's search is very efficient and navigating to a specific line is simple.
I started playing with Hudson as a Continuous Integration tool. Louis and I have spent a lot of time getting it set up on a build server so that we can run tests continuously. This will be one of the core elements of the new Developer site.
Selenium is a really innovative piece of software. It makes user interface testing, something that used to be very difficult, much simpler. This allows one to bridge the gaps that unit testing just can't fill.
What would be your dream setup?
Well, an upgrade is in the works. It won't be anything too special, but it will certainly be quite suitable. Probably a new laptop with a beefy processor. A good amount of ram. 4 gigs, maybe 6. A bunch of storage.
Beyond that, it would be quite fantastic to have a suite of test servers. One of my long term projects is to setup a build system that would allow us to test apps on a variety of platforms. This would mean having hosts to run a variety of browsers. A server running Windows of some variety to run a couple of versions of Internet Explorer, Firefox, Chrome and Safari, and to run IIS and some sort of AMP stack to test that platform. Servers to run the most common hosting platforms.
Imagine that — every build, automatically tested on every browser, server platform and configuration — oh, the bugs we would find!