Automating UI Tests for WPF Applications

Learn how to create a maintainable automated test suite for your WPF application. This course guides you through the process of building one with real-world code examples as well as tips and best practices along the way.
Course info
Rating
(130)
Level
Intermediate
Updated
Sep 18, 2015
Duration
2h 56m
Table of contents
Getting Started
Choosing an Automation Framework
Building a Domain-specific Framework
Extending the Domain-specific Framework with Workflows
Creating Acceptance Tests Using SpecFlow
Summary
Description
Course info
Rating
(130)
Level
Intermediate
Updated
Sep 18, 2015
Duration
2h 56m
Description

Automating UI tests for WPF applications is not an easy task, especially if you have a large project with reach functionality. Nevertheless, it is possible to create a set of simple and maintainable UI tests which can become a great supplement for your development process. In this course, we will walk through the process of creating a full-fledged automated UI test suite. Along the way, we will use simple yet telling WPF applications with functionality close to that of real-world enterprise applications.

About the author
About the author

Vladimir Khorikov is a Microsoft MVP and has been professionally involved in software development for more than 10 years.

More from the author
CQRS in Practice
Intermediate
4h 22m
11 Oct 2018
More courses by Vladimir Khorikov
Section Introduction Transcripts
Section Introduction Transcripts

Choosing an Automation Framework
Hello. My name is Vladimir Khorikov and this is the course on automating UI tests for WPF applications, module two, Choosing an Automation Framework. In the world of WPF applications there are several automation frameworks and it's no always obvious which to choose for a particular project. We'll look at two major ones and compare them by several attributes, the ease of getting started, performance, and maintainability. We will see which of them use what kind of projects and talk about how to make a decision in your particular circumstances. We will also discuss a broader topic of choosing between generated and hand written automated tests and how that applies to long running projects.

Building a Domain-specific Framework
Hello. My name is Vladimir Khorikov and this is the course on automating UI tests for WPF applications module three, Building a Domain-specific Framework. Let's outline the structure of this module. First, we will discuss why we should invest in creating our own domain-specific framework and what value it provides us. We will also do a quick overview of each architecture. Then we will create several tests for our Northwind application using the most obvious approach, basically the same approach we applied in the previous module. We will use procedural code to mimic the steps a QA person would make in order to test a feature. After that we will see how we can refactor the tests using the domain-specific framework. You will learn the techniques that help keep the tests simple and maintainable.

Extending the Domain-specific Framework with Workflows
Hello. My name is Vladimir Khorikov and this is the course on automating UI tests for WPF applications, module four, Extending the Domain-specific Framework with Workflows. In this module we'll continue building the domain-specific framework. We will start off with testing more complex business roles in our application and we'll see how to apply workflows to simplify the tests.

Creating Acceptance Tests Using SpecFlow
Hello. My name is Vladimir Khorikov and this is the course on automating UI tests for WPF applications, Creating Acceptance Tests Using SpecFlow. In this module we'll be building acceptance tests on top of our domain-specific framework. We will discuss what an acceptance test is and why we should create them. You will see how to use SpecFlow and Gherkin language for that reason. Along the way I will share with you guidelines and best practices, as well as common pitfalls developers usually run into when starting with automating acceptance testing.