Virtual PC now available for download - plus small rant about testing on different platforms
Tomas Restrepo is reporting that Virtual PC is now available for download from MSDN subscriptions. It is indeed, and it can be found under Platforms\Connectix Virtual PC 5.2 is you sign in.
For those without MSDN subscriptions, a 45 day eval can be downloaded from the Microsoft site here.
This is a bit of a shame for me, because I've been a long time fan of VMware, which is an amazing product written by very clever geeks. I wonder how they'll fare now given that Microsoft have effectively come out with a competing product with a much, much lower price tag. For me, given that I've been using VMware for so long and that I trust it, I'd rather advise the particular client that needs a tool like this to use VMware, but seeing as their developers already have MSDN subscriptions, it's a bit of a hard sell getting them to fork out an additional $300 per seat.
Interestingly, this whole problem came about for my client because they suddenly discovered that their application would not talk to Oracle when running on anything other than XP Pro. All the developers were using XP Pro (including myself), and has been running interactive tests and unit tests from just XP Pro. So, one day before release when an in-house tester mentions that “it's coming up with a funny error about distributed transactions, the sh*t well and truly hits the fan because we discover that it ain't going to work on anything other than XP Pro! The moral of the story - test on different platforms!
This is actually a damn hard problem for small/medium software houses to deal with, because the more requirements you have, the more testing combinations you have. Imagine you want to support three platforms: XP, Win 2K and NT4. OK, so you have a database application that runs against SQL - that means that every test you do has to be done three times. Now imagine you have to support Oracle - every test now have to be run six times. Then they decide they want to support Win 2K3 - that's eight times. A big customer is using Sybase, so it needs to be checked against that - 12 times.
Two things can help us out here - one of them is some VM solution, like VMware or Virtual PC because it makes is very cost effective to set up different images that we want to test, e.g. XP Home with Oracle 8 client, XP Home with Oracle 9 client, XP Home with SQL Server and Oracle 8 client, and so on and so forth. This means that testers can run their interactive test scripts against a variety of platforms without incurring a massive hardware investment.
Test driven development also really helps us out because we can automatically execute unit tests against all of these images hopefully automatically, but at least part-automatically. Simply set up a machine with the images on them and loop through each image and run the entire unit test suit. Then, when a developer makes a change that breaks an obscure image like some bizarre NT 4 dialect with an old-ish service pack running Oracle 8 you actually know about it, hopefully way before you have two hours to fix it.