Presented by Brian Minasi
The importance of testing is undeniable in the overall application lifecycle. We have all been in projects where testing is inadequate. The result is significant effort and cost to fix bugs that are introduced into production; not to mention the cost of a damaged reputation. Many times, institutions do not invest enough to comprehensively test an application at all levels. It is either seen as too costly or too time consuming. What many organizations do not realize is the investment in thorough testing is far less than the investment in post-production bug fixing. Fortunately, this trend is shifting due to improvements in tooling and through greater awareness of testing techniques and their benefits.
Microsoft is a leader in offering a holistic approach to testing through Visual Studio. This includes unit testing, performance testing, load testing and a new tool introduced with Visual Studio 2010 to manage test plans, test runs, reporting and lab environments.
In three presentations, you will learn how to use Visual Studio 2012 testing features in the three following areas
- Demonstrate Unit Testing using the Microsoft Fakes framework to create shims and stubs with the addition of how to use Moq to create mocks with behavioral validation
- Show how to create Load Tests to verify how the application will handle increasing levels of traffic before deploying it to production
- Demonstrate Microsoft Test Manager to allow developers and QA to create Test Plans, Test Cases, run the tests and communicate test results transparently to the team and organization
After attending all three sessions, you will have an understanding of the three major test offerings with Visual Studio 2012. By implementing the three levels of testing within your organization, the quality of your applications will increase while the cost of developing and maintaining will decrease.
Session 1: Visual Studio 2012 Unit Testing using Fakes and Mocks
One of the basic tenets of unit testing is that the code you are testing should not have dependencies on other code. This guarantees that if a unit test fails, it is not caused by something other than the method under test. In the case when a method does depend on other code, you can use Fakes and Mocks to intercept calls to code outside of the method under test. This provides full control over your tests. In this session we’ll explore the use of Stubs and Shims using Microsoft Fakes. We’ll also look at how Mocks differ by enabling behavior verification using Moq.
Session 2: Create and Run Load Tests in Visual Studio 2012
Your application has been tested and released to production. However, it soon becomes clear that it does not perform as expected; slow or unresponsive and generating errors. The application works fine in QA and UAT, but is unable to handle the traffic thrown at it in the real world. Knowing this prior to production is essential. Visual Studio 2012 Load Testing provides the tools and features to simulate the conditions an application will face in production.
In this session we’ll discuss the load testing architecture, how to set up and configure a test rig, create Web performance tests and load tests, and set up roles with diagnostic and data adapters. We’ll also discuss using performance monitors and counter sets. Finally, we’ run a load test and examine the load test report.
Session 3: QA Testing with Microsoft Test Manager 2012
Microsoft Test Manager enables testers to be more productive throughout the testing lifecycle of planning, testing, and tracking progress. This tool integrates with Team Foundation Server, enabling testers to define tests within the same team project that the rest of the team is using. You’ll learn how to create a Test Plan, Test Suite, and Test Cases during the planning stage. You’ll also see how to create environments within a test plan and collect diagnostic data from the environment during a test run. We will then run tests and see how the test results can be communicated to the team through bugs and reporting. Finally, we’ll cover the new features of Microsoft Test Manager, including exploratory testing, the rich text editor for manual testing, and other features.