Wednesday, November 24, 2010

Industrial Strength Testing for Joomla Part 1

Ugh. Developing with PHP seems like such a crap shoot, and the picture gets even more muddled if you try to work with a rats nest of third-party components. In general, the quality just isn't there.

My development environment for PHP bears some of the blame. I'm not a Zend user yet, though I probably should be. Still, like C and Perl, PHP seems to encourage inelegant coding.

One tool that I have used is VirtualBox. "What," say you, "does VirtualBox have to do with testing?" Well, for one thing, VirtualBox allows me to virtually reconstruct almost any hosting environment on my Lenovo T61 or MacBook Pro. The result replicates the hosting environment much better than a "WAMP" style native installer, compartmentalizes the services in a sandbox that can be put to sleep, and avoids application upgrade hell. It can even replicate the horrors of "open_basedir=." in its PHP configuration (that breaks a LOT of packages).

I've used the Joomla JumpBox appliance for a test deployment server, but recently switched to using the TurnKey Joomla appliance. Could I use shared or cloud hosting for test deployment? Yes, but the local virtual machine is private, fast, and can be junked much more quickly.

When used in the development cycle, a virtual appliance is, in effect, an industrial strength test fixture. But test fixtures are only a part of the solution to testing. A general purpose test framework is needed.

No comments: