I wrote about using virtual machines for testing in hwtsam, and gave a talk at STAR West a few years back on using virtual machines for testing. What I remember most about the talk was the group of VMWare employees sitting about 10 rows back (I think to ensure that I didn’t say anything bad about them – I didn’t). In fact, I’m a fan of virtual machines no matter where they come from – they’re incredibly useful, and in many cases, and under used productivity aid.
One point I seem to forget to mention when I’m talking about virtual machines is how convenient they are beyond testing purposes. I wanted to share a recent experience of mine, but there’s a bit of a story leading to the punch line, so feel free to skip ahead a few paragraphs if you’re busy.
I have three computers in my office at work. My main “dev / test box” is a win2k8 server (for reasons beyond the scope of this post, we build our product only on server machines). We have fancy tools that let us build and deploy (for testing) quickly on this single machine, and in order to not break the consistency of this niceness, we never, ever install any shipped office bits on these machines – only bits that we generate through the build process. The consistent use of machine and build configurations eliminates nearly all of the “it doesn’t work that way on my machine”, or “my build is broken” issues.
Because real users don’t use our dev machines, I also have a “test machine” – which I use for (surprise, surprise), testing. Because I’m working on the next version of Office, that’s all it runs most of the time.
Then I have my laptop. Since I use it for everything else, it runs (usually – but see below) office 2010, and I use it for email, docs, etc. About a month ago, I needed to install our pre-beta bits on my laptop. In general, we can run our new stuff side by side with the shipped stuff, and it works fine. However, in a long bout of yak-shaving one day, I had to uninstall all versions of Office from my laptop. But I still needed the latest bits to reproduce a bug I found, so to save time, I just installed the new pre-beta bits.
You see where I’m at now. I don’t have any machines running shipped office bits anymore. While the pre-release apps all work quite well, they’re a bit…unrefined. I’m a big fan of ‘eating my own dogfood’, but sometimes I need the confidence that comes from using something a bit more baked.
I almost started to install the shipped office bits back on my laptop when I realized two things. The first was that I was extremely worried that I’d spend a few hours every week tweaking things on my laptop – installing, and uninstalling in order to clear up weirdness, or keeping things in sync switching between different versions of the same app. I want to continue running daily builds as much as I can, and knew I’d end up switching between different versions of the same application all the time, and I was worried about the time hit. The second thing I realized was that a virtual machine could be a nice solution for me.
It only took me an hour or two to set up a hyper-v vm (hosted on my “dev box”), install windows, office 14, and sync documents with my live mesh account and I had a vm that acted so much like a ‘real’ pc that after a month, I still forget sometimes that it’s not a real machine. I use our prerelease bits for nearly everything, but can rely on the vm (which I connect with over terminal services) when I feel the need to work with shipped software – for example, my vm currently has a copy of word open with my pnsqc paper. It’s cool, because I was working on it last night (connected from home), and just left word open. When I logged on to the vm this morning from work, it was right where I left it. It’s so damn convenient, in fact, that I can’t imagine not having a “work” vm anymore, and I can see a point in the not-too-distant future where we all use virtual machines in the cloud more than physical computers.
– written and published from a virtual machine
Virtual machines were one of those things I wasn’t sure I needed until I got one. Now its hard for me to think about testing without them. Its amazing to have easy access to multiple setups for automated and manual testing. I’m a bit surprised there isn’t more virtualization in the mobile space. I was wondering what your thoughts were about mobile virtualization?
On a side note your Testing stack exchange link under cool sites is broken. They changed it to http://sqa.stackexchange.com/ because the title Software Quality Assurance moniker will never die… no matter how much I hate it 🙂
Thanks for the update – we did have a testing.stackexchange at one point, but I assume it’s been deprecated now that we have the sqa stack 2.0 site.