Testing for Reliability&Performance with Visual Studio 2017
With its focus on new and
modern mobile, Cloud, and desktop development capabilities, Visual
Studio’s overall acquisition, performance, and general developer
productivity have improved; it starts faster, is more responsive, and
uses less memory than before.
this course, you learn about increasing reliability and performance
with Visual Studio 2017. This course starts by setting up a Continuous
Integration configuration in Visual Studio Team Services to run unit
tests on every code change. Next, we introduce tools that can improve
the effectiveness of manual testing. You will be introduced to Microsoft
Test Manager, to organize test processes more effectively; IntelliTrace
for easier reproduction of issues encountered; and UI tests, to
automate repetitive regression testing. You will configure Visual Studio
Team Services to automatically build code and run unit tests whenever a
change is committed to source control. The course focuses on Microsoft
Test Manager features that can be used to gain more control over the
manual testing process.
The last sections will focus on tools for improving application performance: profiling and load testing.
About The Author
Damir Arh is a
software architect and developer, who is interested in using new
technologies and methodologies to make development processes more
efficient and improve the user experience in software.
He is a big proponent of
TDD (test-driven development) and unit testing in general. He regularly
uses NUnit and MsTest unit testing frameworks and is very fond of the
NCrunch continuous testing tool. It really changes the way you look at
He has a lot of
experience with setting up continuous integration servers
(CruiseControl.NET and TeamCity), and has used and administered
different source control tools (SVN, GIT, TFS, and VSS).
He has been working with
Microsoft development tools all of his professional career. He has lots
of experience with most parts of the .NET framework: client-side (WPF,
Windows Forms), server-side (WCF, WF, and ASP.NET), and data access
(ADO.NET, Entity Framework).
Lately, he has been very
interested in mobile platforms, such as WinRT and Windows Phone. He has
been a fan of Portable Class Libraries since they were first released.
In the past, he spent a lot of time in the field of COM-.NET interoperability, as well as with Word and Excel automation.
He is also experienced with all aspects of SQL Server (Database Services, Analysis Services, DTS, and Integrations Services).
He loves to share his
knowledge with other developers. He is a speaker at local events
(Microsoft NT conference, Bleeding Edge, and local user group meetings).
He regularly posts on his blog and is an active user on Stack Overflow.
Running Tests on a Build Server
This video provides an overview of the entire course.
To run our tests in the cloud we will use the continuous integration service, which is a part of Visual Studio Team Services. To access them, we first need to create an account.
To build the project and run the tests, the build server requires access to our source code; therefore we need to put it into a remote repository.
Having to run the build configuration manually defeats the point of having it on the server. We need to add a trigger to run it automatically when the code changes.
Now that you are done with the videos of section 1, let’s assess your learning. Here, are a few questions, followed by 4 options, out of which 1 is the correct option. Select the right option and validate your learning! The answers are provided in a separate sheet
Testing Manually with Microsoft Test Manager
Not all testing can be automated. Visual Studio and Visual Studio Team Services also include tools for ad-hoc manual testing of applications.
Test plans make the manual testing process more predictable and reliable. Microsoft Test Manager includes features for managing test plans.
One of the reasons to use Microsoft Test Manager is its ability to automatically collect diagnostic data during testing. Which data is actually collected is fully configurable.
Historical Debugging with IntelliTrace
Now that you are done with the videos of section 3, let’s assess your learning. Here, are a few questions, followed by 4 options, out of which 1 is the correct option. Select the right option and validate your learning! The answers are provided in a separate sheet
Debugging and Testing User Interfaces
Although Visual Studio has tooling for design-time editing of user interfaces, much more information can be obtained about them at run-time.
We want to automate the running of user interface tests on the build server, like we did for unit tests. We must fulfill some additional requirements on build agents for this to work.
Improving Performance with Profiling Tools
The first step in optimizing an application is identifying, which parts are slow and would benefit most from optimization. Visual Studio Diagnostic Tools can help us with that.
UI responsiveness is often a user’s first contact with the application, which makes it an important aspect of the overall performance. There are dedicated tools in Visual Studio to measure and improve it.
Load Testing Web Applications
It’s not only important that the application works correctly, its performance is also important to users. That’s why Visual Studio 2017 Enterprise has tools for measuring performance of web applications.
To get correct results from load testing, enough resources must be provided to test agents. Running the tests in the cloud is an easy way to achieve that.
Now that you are done with the videos of section 6, let’s assess your learning. Here, are a few questions, followed by 4 options, out of which 1 is the correct option. Select the right option and validate your learning! The answers are provided in a separate sheet