Testing VCRedist

Hi everyone,

My name is Rob Huyett, and I’m an SDET on the Visual C++ Libraries team.  I’ve been here at Microsoft for just a little over a year.  One of my recurring duties here is to test VCRedist in its various forms.

VCRedist (just in case you aren’t already familiar with the term) refers to the process of distributing the VC libraries to computers that do not have Visual C++ installed so that Visual C++ programs can be run on those computers.  There is a ready-made set of redistributable packages (vcredist_x86.exe, vcredist_x64.exe, and vcredist_ia64.exe) that carry around the full set of VC libraries (ATL, CRT, MFC, MFCLOC, and OpenMP) and their associated manifests.  Visual Studio also provides the libraries individually in a directory called “redist” under the VC folder in case you’d like to create your own installation package that includes only those libraries that your particular project needs.

At the current time, most of the testing that I do for VCRedist is manual in nature.  I’ll install a redistribution package on a machine, verify that the proper files have been installed in the right place, and run a simple test program (or two, or ten) to make sure that the program(s) can see the libraries.  It may not sound like much, but that’s just for one machine, one configuration.  Repeat that process for all of the supported architectures and operating systems, and I’m sure you can imagine that it can become a little tedious and very time-consuming.

To make this easier and to ensure consistency, I’m working (with the help and advice of a few other folks here) on incorporating this testing into our battery of automated tests.  In addition to making life easier, the automated test suite will allow us to perform far more frequent testing and catch any potential problems sooner.  So far, the automated testing just covers some very basic scenarios (install the VCRedist package, verify that the files are where they should be, execute a couple of programs, etc.), and the balance is made up with some manual testing.  The idea, though, is to automate everything, so I’ll be adding new scenarios just about as fast as I can find a way to automate them!  Some of the items on my to-be-automated list include repeat installations (for instance, when some or all of the libraries in the redistribution package are already on the target computer), installations, and automated testing of applocal redistribution.

Of course, if you have any comments, questions, or suggestions, I’d love to hear them!  Thanks!

Rob Huyett – Visual C++ Libraries QA Team