Automated Testing: End to End

Keep your software soft with the right automated tests at the right level.
Course info
Rating
(571)
Level
Intermediate
Updated
Jun 18, 2013
Duration
3h 15m
Table of contents
Introduction to Software Testing
Unit Testing - Testing in Isolation
Integration Testing
Functional UI Testing
Putting it all Together with a Continuous Integration Server
Description
Course info
Rating
(571)
Level
Intermediate
Updated
Jun 18, 2013
Duration
3h 15m
Description

We shouldn't live in fear of our code. Long-term customer satisfaction, product agility, and developer happiness are crucial. A quality suite of automated tests helps achieve this. This practical course covers how and what to test at the unit, integration, and functional UI levels; and how to bring them all together with continuous integration build server.

About the author
About the author

With over 15 years experience, Jason Roberts is a Microsoft .NET MVP, freelance developer, and author.

More from the author
Mocking with Moq and NUnit
Intermediate
1h 53m
Feb 22, 2019
Introduction to .NET Testing with NUnit 3
Intermediate
2h 6m
Dec 17, 2018
Working with Files and Streams in C#
Intermediate
3h 13m
Oct 12, 2018
More courses by Jason Roberts
Section Introduction Transcripts
Section Introduction Transcripts

Unit Testing - Testing in Isolation
Welcome to this module on Unit Testing, or testing in isolation. In this module, we'll be looking at what unit tests are and what kinds of testing they're good for. We'll get acquainted with the NUnit testing framework and how to write and run tests. We'll explore the difference between state and interaction-based unit tests and look at how we can use the Moq Framework to create fake dependencies and help us isolate our tests.

Integration Testing
In the module on unit testing, we learned how to test things in isolation. In this module, we're going to look at integration testing, which is concerned with testing that things work together. We're going to learn what integration testing is and how we can integration test at various levels. We'll learn about the Dependency Inversion principle and how it allows us to choose what object dependencies to use. We'll also look at how the gateway pattern can help us abstract and test external third party components. We'll look at some demos of the different levels of testing, including how we can use a dependency injection container to create our test object graph.

Functional UI Testing
Hi, welcome to this module on Functional UI Testing, which is concerned with testing things at the user's level. In this module, we'll learn what automated functional UI testing is and what it's good for. We'll compare the two general styles of automated testing. We'll learn how to use the open source WatiN library to create automation tests. We'll then look at how we can better organize our test code to remove duplication and make our tests less brittle. And finally, we'll take a look at some advanced considerations when using the coded style of automation.

Putting it all Together with a Continuous Integration Server
Hi, welcome to this module on Putting it all Together with a Continuous Integration Server. We've now learned about the different levels of tests and how to write them, but there's no point in having all these great, valuable tests if they don't get run early and often. This module looks at ensuring our tests do get run by using a build server to run them automatically for us. We'll be looking at what the practice of continuous integration is, what build pipelines are, and how to implement them using the TeamCity build server. We'll also think about some advanced considerations for automated builds.