Test-driven Development: The Big Picture

Test-driven development is a development practice that helps runaway maintenance costs, and enables developers to build higher quality software. This course shows you why test-driven development is important and what problems it can solve.
Course info
Rating
(122)
Level
Beginner
Updated
Apr 14, 2017
Duration
1h 50m
Table of contents
Description
Course info
Rating
(122)
Level
Beginner
Updated
Apr 14, 2017
Duration
1h 50m
Description

Developing software can be expensive. Surprisingly, much of this cost is found in the maintenance of the software. Test-driven development aims to help with these runaway costs, as well as enabling developers to build higher quality software. In this course, Test-driven Development: The Big Picture, you'll learn the basics of test-driven development, a development practice aimed at building high quality software. First, you'll explore what test-driven development is and why it exists. Next, you'll learn the different terminology and tools of the trade when doing test-driven development. Finally, you'll learn how to utilize test-driven development by working through a series of test-driven development examples. When you're finished with this course, you'll have the necessary knowledge to start building software using your test-driven development skills, and improve the quality of software.

About the author
About the author

Jason is a software engineer passionate about distributed computing, cloud-based technology, and fault-tolerant systems. He is a full stack developer at Concur, and formerly a Technical Evangelist and Program Manager at Microsoft. Outside of work, he is a father of two and loving husband.

More from the author
Python: The Big Picture
Beginner
1h 5m
26 Jan 2018
Getting Started with CoreOS
Intermediate
1h 50m
28 Nov 2016
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi everyone. My name is Jason Olson, and welcome to my course, Test-driven Development: The Big Picture. I'm a senior software engineer at Concur Technologies where I build and maintain distributed systems everyday with a focus on high availability and fault tolerance. So developing software can be expensive. Surprisingly, much of this cost is found in the maintenance of the software. Test-driven development aims to help with these runaway costs, as well as enabling developers to build higher quality software in the first place. This course is a quick introduction to test-driven development, and no prior experience with TDD is required. Some of the major topics that we will cover include what TDD is and why it exists, the different terminology and tools of the trade when doing test-driven development, how to practice test-driven development by working through a series of TDD examples, and the gotchas you need to watch out for, and other topics you should know when discussing TDD with other developers. By the end of this course, you will have the necessary knowledge to start building software using test-driven development skills and to help improve the quality of software you build. I hope you'll join me on this journey to learn test-driven development with this Test-driven Development: The Big Picture course, here at Pluralsight.

What Is Test-driven Development? (TDD)
Hi. This is Jason Olson, and this module is the first module of a course to help you understand the big picture of test-driven development. Test-driven development is a software development process aimed at delivering software that end customers need and delivering it with very high quality. In this first module, I want to give you the context needed to understand not only what test-driven development is, but why it provides value in the first place. In future modules, we will cover different ways of testing software, take a look at test-driven development in action, strategies and techniques for effectively testing code, and potential gotchas you are likely to run into as you start practicing test-driven development. So with that said, let's get started.

Different Ways of Testing Applications
Welcome to the second module in this course on Test-driven Development: The Big Picture. This is Jason Olson. In the first module, we took a look at challenges faced by businesses and developers when creating software. We also dove into what test-driven development is and the benefits it provides. In this module, we are going to take the next step and dive into the different ways of testing applications and services.

Test-driven Development in Action
Welcome to the next module in this course on Test-driven Development: The Big Picture. This is Jason Olson. In a previous module, Different Ways of Testing Applications, we took a look at the different ways of testing applications and services. In this module, we're going to see test-driven development in action by working through some basic examples. First, we will use the common exercise of FizzBuzz to see the basics of TDD in action. Then, we will use a simple stack example to practice a code kata. We will use this to do multiple implementations of the stack to practice our various development techniques. So let's get started.

Strategies and Techniques for Testing Code
Welcome to the next module in this course on Test-driven Development: The Big Picture. This is Jason Olson. In the previous module, we took a look at test-driven development in action. We also practiced a code kata. In this module, we're going to take the next step and discuss different strategies and techniques for testing code. There are three specific areas we will dive into in this module, dependency injection, a technique that allows us to use common test practices, test doubles, a common testing practice that frequently uses dependency injection, and best practices for test-driven development.

Looking out for Test-driven Development Gotchas
Welcome to the fifth and final module in this course on Test-driven Development: The Big Picture. This is Jason Olson. In the fourth module, we took a look at different strategies and techniques for testing code, like dependency injection and test doubles, as well as best practices when testing code. In this final module, we'll take a look at common test-driven development gotchas you are likely to run into when practicing TDD. We'll touch on TDD anti-patterns, TDD limitations, and common questions that come up when discussing TDD with others. We'll then conclude this course with a brief recap and some next steps you may want to take in your development journey.