Visual Studio Team Services introduction
- Why do we need Application Lifecycle Management?
- VSTS ALM: The big picture
- ALM Features
Visual Studio Team Services is a server product intended as the collaboration hub for everyone on the development team, including
project managers, testers, architects, developers and end-users.
- Development Processes
- Team Projects
- Process Templates
- Configuring your team project and iterations
Create a Project Backlog
The project backlog contains all the features that users have requested. This does not mean we will immediately add this
feature, for this we have backlog planning where we try to identity the features we want to build next.
The project backlog
User Story work item
Work item templates
Velocity and Forecasting
- Powerpoint storyboarding
Planning a sprint
Once we have decided which features we will build next, we will identity the various tasks that need to be completed to
built that feature. We will look at balancing product, schedule and cost.
- Sprint Planning
- Identifying user stores for the next sprint
- Capacity planning
- Defining tasks to complete a user story
- Adjust work to fit team capacity
- Sharing a sprint with stakeholders
Running the sprint
Ready? Set? Go! During the sprint the whole team build the next features. Communication here is essential, so we will look
at the daily standup meeting and how VSTS can help. We will also look at reporting in VSTS.
- Running a sprint
- The daily standup meeting
- Burndown chart
- Team dashboards and charts
Using Version Control
Sources are probably the most important part in any software project and we need a way to keep track of all sources and all
changes. Visual Studio Team Services has a mature source control system, also used internally at Microsoft, supporting
branching, merging and everything else required. Team Foundation Server also has a way to check sources before they are
checked-in through check-in policies, limiting the number of broken builds to a minimum.
- Version Control concepts in Visual Studio Team Services
- Adding files to Version Control
- Single Checkout and Multiple Checkout
- Branching and Merging to work on multiple versions
- Visualizing branches and changeset merges
- Shelving for all kinds of scenarios
- Controlling the quality of code through Check-In-Policies
- Source Control integration for project management and reporting
- Distributed Source Control with Git
Introduction to Git
Git is becoming (or already is) the most popular source control system out there. It should not come as a surprise that
Microsoft added support for source control to Visual Studio. In this chapter you will learn how to do day to day tasks
- Introduction to Git
- Git Workflow
- Creating a local repository
- Cloning a remote repository
- Staging files
- Committing files
- Adding branches to your workflow
- Merge vs. Rebase
- Synchronizing with a remote repository
- Pull Requests
- Using VS with other Gits
Unit testing in .NET
What every developer wants: clean code that works. So how to you get your code to be maintainable and working? And even more
important: keep your code working.
- What every developer wants: Quality code that works; and keeps on working
- Finding bugs: not just in code. - Or how NASA lost a 125.000.000$ Mars orbiter
- What is unit testing? And what is a good unit test?
- Understanding the difference between a unit test and an integration test
- Test Driven Development - Should you be doing it?
- Role-playing: Marge, Homer and Bart
- The Triple-A of unit testing - and what has cooking to do with this?
Unit testing with Visual Studio
Visual Studio has Unit Testing built in with MSTest. So we will look at the unit-testing workflow with Visual Studio.
- MSUnit - Built into Visual Studio
- Building and running Unit Tests with MSUnit
- Using the Test Explorer Window
- Live unit testing with Visual Studio 2017
Using Microsoft Fakes
And how do you test 'untestable' code? Code where dependencies have been glued into the class you want to test? Then you
need some magic: Microsoft Fakes. This product allows you to replace any class's implementation, making it easier to
test legacy code and other difficult to test code.
- What makes Microsoft Fakes so special
- Testing legacy/untestable code
- Building Stubs and Mocks with Fakes
Team Build and Daily Integration
To build quality software, and to limit nasty integration problems at the end of the project, doing a daily build is long
regarded as a best practice. Visual Studio Team Services makes building daily very easy through Team Build. You'll learn
how to manage the build, do desktop builds, and how you can setup Team Build to work in a continuous integration environment.
We'll also look at Gated checkin, which prevent's anyone from breaking the build. You'll then learn how to customize
the build process to perform all your build steps including running unit tests, creating custom build actions, generating
setup programs and deploying to staging servers.
- What is Team Build?
- Doing Continuous integration
- Creating Build processes with the new componentized build
- Release management and continuous deployment
- Release definitions
- Approving releases
- Setting up your own build server
Web Performance testing
So how will your website cope in real life? How many users can it handle before becoming slow?
- Load testing
- URL based load testing
- Comparing test runs
- Visual studio load testing
The new Test center is now the central place for testers to run and analyze their tests. Record the steps to test your software,
and re-run the tests automatically later.
- Types of tests
- See if your code scales with Web performance and Load Testing
- Load testing with the Cloud
- Test planning with Microsoft Test Manager
- Test Plan, test suite, test case
- Running manual tests using the Test Runner
- Parameters and Shared Steps
- Action recording
- Creating bug work items
- Minimize retesting using impact analysis
Developing quality software is not easy. That is why Visual Studio comes with a range of tools to make building better software.
- Day to day with My Work
- Tracking work
- Suspend and resume
- Peer to peer code reviews
- Doing static code analysis with FxCop
- Reporting on maintainability using the Code Metrics report
- Finding bottlenecks in your code with the Profiler
Reproducing bugs with Intelli-Trace
Reproducing bugs that happened in production sometimes is very hard. Simply because the production machine is not the same
machine a developer is using. Intelli-Trace is a Microsoft product that allows developers to quickly reproduce bugs found
- Reproducing bugs
- Using Intelli-Trace to reproduce bugs
- Post-mortem debugging with iTrace files