Recently I've fielded a few questions from colleagues and customers on what is Unit Testing and how is it done in Visual Studio Team System. I have to say that Unit Testing has become a bit of ambiguous term in the IT industry and so the term means different things to different people. I'm in favour of Unit Testing being re-badged "Developer Testing" as this is the core essence of Unit Testing in my opinion. I.e. it's testing of code done by software developers as part of the development process. The follow set of links is further background and reading:
Unit testing defined: The short definition of unit testing | The wikipedia definition of unit test | A broader summary of unit testing | Softwaredev.com articles on testing
Visual Studio Team System Unit Testing: TheServerSide.net article on testing in VSTS and VS2005 in general | OnDotNet article covering unit testing in VS2005 including VSTS, NUnit and others | MSDN Walk through on unit testing in VSTS
This comment from the TheServerSide.net article sums it up best in my opinion:
"Jay Flowers, a lead developer at Northrop Grumman, said "One does not purchase VSTS for a unit testing framework or for a source control repository. It is purchased because it is an integrated platform to help enforce and encourage your chosen process. The main thing that VSTS offers over the other frameworks available is integration into the software development process."
I firmly believe (aside from testing aspects) Visual Studio Team System is the most cost-effective collaboration platform for Microsoft Development Teams. It may not do every aspect as perfect as some other tools, but it as fully integrated and customisable. The ability to have integrated unit testing is a major selling point of VSTS.