At the completion of this course, attendees will be able to:
- Describe the full feature-set of Microsoft’s Application Lifecycle Management suite
- Create Team Projects and Team Project Collections as appropriate for your environment
- Understand how Work Item tracking can be used across the entire team
- Create custom work item queries and notification
- Use a variety of client tools to interact with team members and TFS
- Use the version control system to maintain source code as well as branch and merge code
- Improve code using the Code Review workflow in My Work
- Create automated builds and automate the execution of unit tests
- Manage projects using the Agile Planning tools
- Create Portfolio backlogs to help manage large projects
- Manage work in teams including sprints and backlogs
- Create Test Plans, Test Suites and Test Cases
- Perform a variety of testing using Microsoft Test Manager and the Test hub
- Raise information rich bugs and verify them once resolved
- Perform exploratory testing
- Create and modify builds to include automated testing and deployment
- Deploy software using Release Management
- Configure Application Insights to monitor your applications
Audience
This class is designed for all team members looking to effectively use the team-oriented features provided by Microsoft Visual Studio 2017 and Team Foundation Server 2018. This includes developers, testers, business analysts, and build and release staff.
Prerequisites
Attendees should be familiar with the needs of a software development team and the basic processes they would follow. Familiarity with Visual Studio and the basic use of Team Foundation Server would be a benefit.
Modules
Day One: Team Development
Module 1.1: Introducing the Microsoft Visual Studio family
- What’s new in Visual Studio
- Overview of the Visual Studio family
- Overview of product features
- Project workflow across the Visual Studio suite of products
Module 1.2: Initiating a New Project
- Organizing projects in TFS
- Understanding process templates
- Creating a new team project
- Setting team project properties
Module 1.3: A Closer Look at Work Items
- Overview of work items
- Searching and creating custom queries
- Work item tagging
- Configuring project notifications
Day Two: Managing Agile Projects
Module 2.1: Creating Our Product Backlog
- Understanding Requirement types
- A review of User Stories
- Creating backlog items in TFS
- Traceability between work items
- Creating requirement hierarchies using features
- The importance of acceptance criteria
Module 2.2: Agile Estimation
- Introduction to Agile estimation
- Using story points
- Planning Poker and other popular estimation techniques
- Adding your estimates to TFS work items
Module 2.3: Working from the Product Backlog
- Introducing the Kanban board
- Entering and editing details on the Kanban board
- Customizing columns including using split columns and limiting WIP
- Recording our Definition of Done (DoD)
- Understanding the Cumulative Flow Diagram
Module 2.4: Working in Sprints
- Our Sprint planning meeting
- Specifying your sprint schedule and your team capacity
- Selecting items for the sprint backlog using forecasting
- Decomposing requirements into Tasks
- Using Burndown charts to track progress
- Monitoring work using the task board
- Working with unparented work items
Module 2.5: Tracking progress with Dashboards and reports
- Work item charting and pinning charts
- Creating Dashboards
- Overview of Reporting Architecture
- Reviewing the out of the box reports
- Creating ad-hoc reports using Excel
Day Three: Agile Development
Module 3.1: TFS Version Control Concepts
- Version control in Visual Studio
- Version control terminology
- A closer look at workspaces
- Changesets and shelvesets
Module 3.2: Using Team Foundation Version Control
- The Source Control Explorer
- Getting code into TFVC
- Understanding the Pending Changes experience
- Linking changesets to work items
- Locking files in TFVC
Module 3.3: Configuring an Effective Version Control Environment
- Working with workspaces
- Setting team-project-wide source control settings
- Check-in policies
- Backward compatibility using the MSSCCI provider
Module 3.4: Effective Branching and Merging
- Defining a branching strategy
- How to branch
- Branch visualization and tracking changes
- Merging and resolving conflicts
Module 3.5: Unit Testing and Code Quality Tools
- Unit Testing in Visual Studio
- Visual Studio Test Explorer
- Live Unit Testing
- Code Coverage
- Code Metrics
- Code Analysis
- Code Clone Analysis
Day Four: Agile Testing
Module 4.1: Creating Your First Test Plan
- Creating a test plan
- Creating test cases and using test suites
- Mapping requirements to tests
- Test Configurations
Module 4.2: Authoring a Manual Test Case
- Creating a new manual test case
- Using Grid view to author and edit test cases
- Appropriate use of Expected Results
- Tagging test cases for better organization
Module 4.3: Executing Test Cases
- Defining which tests to include in a test run
- Assigning a tester to run tests
- Executing tests using the web-based Test Runner
- Executing tests using the Microsoft Test Runner
Module 4.4: Raising and Verifying Bugs
- Raising a bug
- The bug lifecycle
- View bug states
- Verifying a bug fix
Module 4.5: Exploratory Testing
- What is exploratory testing?
- Installing the Test & Feedback extension
- Creating bugs and test cases from exploratory tests
- Eliciting and managing feedback
Day Five: Build and Release
Module 5.1: Configuring your build environment
- Understanding build infrastructure
- Creating agent pools and queues
- Installing and upgrading build agents
- Specifying capabilities on your agents
- Configuring security
- Overview of non-Windows agents
- Overview of hosted build infrastructure
Module 5.2: Automating Builds
- Creating a new build definition
- Understanding build templates
- Common build tasks
- Queuing a build
Module 5.3: Defining a Release Workflow for On-Premises Servers
- Overview of release tasks
- Using the manual intervention task
- Copying files and running scripts
- Releasing a web application to an IIS server
- Tracking our release
Module 5.4: Automating Functional and Performance Tests
- Configuring infrastructure for test execution
- Executing UI tests (Coded UI and Selenium tests)
- Executing load and performance tests