Given that you want to deliver high quality code,when you drive your entire software development lifecycle with tests – you will dramatically improve overall quality. Microsoft’s introduction of Visual Studio 2010 and Microsoft Test Manager provides very powerful tools we can use to begin with tests. In this presentation we specify an entire system with tests. We begin with tests to ensure the business value of an application is testable and we know when we’re done. Using those tests,we clarify the requirements using acceptance criteria expressed as test cases. Finally,we decompose the requirements to specific testable behaviors that will drive our unit tests. Armed with the complete understanding of the application,we begin to work upwards again. We automate the unit tests to ensure our code is tested. Then,as our code begins to take shape,we automate the functional tests to ensure our requirements are met – and stay met as our code continues to evolve. Finally,we automate the system and integration tests to prove to our customers that we have met the end-to-end vision of the application. The final demonstration shows the integration of all tests running during an automated nightly build.