Writing successful software requires learning a long list of skills and tools. Experienced programmers know that these skills are not static, and need refreshing from time to time. Knowing the ways to test your software is considered a necessary skill. This tip will give you an overview of the testing tools available in Visual Studio. As an added bonus you will learn which testing features are in which Visual Studio edition.
Visual Studio editions
Microsoft produces a number of versions of their popular Visual Studio product. Prices for these editions cover a wide range. You might be surprised to learn that there are free versions available for you to use. On the other hand you can get out your corporate credit and spend some serious cash for the Ultimate edition which costs up to $12,000. There are a number price points in between these two extremes. Microsoft caters to every niche.
There are four versions of Visual Studio that contain testing tools - Professional, Premium, Ultimate and Test Professional (aka Test Manager). Note that all these editions are paid versions. That’s right, no testing tools in the free versions.
Team Foundation Server
In addition to the Visual Studio tools, Microsoft provides an optional server product, known as Team Foundation Server (TFS). TFS is the backbone of many corporate development shops. It serves as a repository for items considered crucial for professional software projects. For example it stores test cases, bug reports, and product work items. It also contains source control repositories, workflow generators and project progress reports. Visual Studio incorporates these items in the easy to use Team Explorer window.
Dedicated Testing edition
Testers get their own dedicated version of Visual Studio called Test Professional, also known as Test Manager 2010 (MTM). (MTM) works in tandem with TFS, providing the test team with access to test plans and detailed test cases. MTM also contains a Lab Center. Lab Center serves as a hub to create, mount and manage your virtual testing environments.
Individual Virtual Machines are mounted via Lab Manger, then used to execute one or more tests. One neat feature in the Lab Center is that a tester can save the virtual machine with a bug report. Then, when the developer works on bug they can also checkout the virtual machine.
Types of testing
I plan on covering these testing tools in futures tips, but here is a brief overview of each testing type.
Unit Tests: Validate code accuracy and whether the code meets that state functionality.
Ordered Tests: When you need to execute a series of tests in a certain order, use the ordered test.
DB Unit Tests: Test whether database entities are changed correctly during application runtime.
Code Coverage: determine what portion of your code is not executed during application runtime.
Web Performance: Record a series of HTTP requests to automatically send to your web server. Useful for testing the performance and information for page results, page redirects, view state, validations and authentication.
Coded UI Test: A way to automate testing of non –web UI (Windows Forms, WPF).
Test Impact Analysis: this feature allows you to see what unit tests have been impacted by your latest code changes. Rather than run your entire test suite, you can run the smaller suggested.
Here is a simple diagram that shows which feature is in each Visual Studio 2010 edition.