Introduction

Completed

As you add a feature to your app, how do you know whether the feature will work correctly, given all possible interactions? How do you know that the feature works well with and doesn't break other features? How do you know that your code is maintainable and easily understandable by others?

You could run the app locally and try a few inputs, but that takes time and doesn't cover all cases. Plus, repeatedly testing existing features gets tedious and time consuming as you add new features.

In this module, you're a developer at Tailspin Toys, working with your team on a game called Space Game. This module demonstrates how to set up automated testing to help ensure that your latest feature works and that you haven't broken anything along the way.

After completing this module, you'll be able to:

  • Explain the benefits of automated testing and the kinds of testing you can use.
  • Run unit tests locally and then in Azure Pipelines.
  • Add dashboard widgets to visualize test runs over time.
  • Perform code coverage testing to see how much of your code is covered by unit tests.
  • Fix and verify test failures in your build pipeline.

Prerequisites

The modules in this learning path form a progression.

To follow the progression from the beginning, be sure to first complete the Get started with Azure DevOps learning path.

We also recommend you start at the beginning of this learning path, Build applications with Azure DevOps.

If you want to go through just this module, you need to set up a development environment on your Windows, macOS, or Linux system. You need:

You can get started with Microsoft Azure DevOps for free.

This environment lets you complete the exercises in this and future modules. You can also use it to apply your new skills to your own projects.

Note

Azure Pipelines support a vast array of languages and application types. In this module, you'll be working with a .NET application but you can apply the patterns you learn here to your own projects that use your favorite programming languages and frameworks.