Course
Skills Expanded
Outside-In Test-Driven Development
Learn how to apply Test-Driven Development to target both the big picture and the smallest details of your application.
What you'll learn
This course teaches how to build an application from the outside in - starting with tests targeting actual features or use cases of an application, but gradually working towards a more and more detailed specification of the components of an application. The focus is on the technical side of TDD, not the business side. Approximately half of the content is a series of C# demos, building a small RESTful service from scratch.
Table of contents
Walking Skeleton
41mins
- Introduction 1m
- This is not a TDD introduction 1m
- Purpose of Outside-In TDD 1m
- Outside-In TDD at a glance 2m
- Testing means many things 1m
- Isn't this simply BDD? 1m
- The agile testing quadrants 1m
- The test pyramid 2m
- Testing at boundary and unit levels 0m
- Outside-In or Bottom-Up 1m
- Walking Skeleton 2m
- Technical constraints 1m
- Demo introduction 1m
- Demo: Getting a response from a Walking Skeleton 14m
- Demo recap 1m
- Demo: Posting an entry 3m
- Demo recap 1m
- Demo: Posting and reading back an entry 6m
- Demo recap 1m
- Did I cheat? 0m
- Summary 1m
Spiking
28mins
Triangulation
36mins
- Introduction 0m
- Outside-In versus Bottom-Up 1m
- When to use 1m
- Stimulus/Response 1m
- Triangulation 1m
- Sampling 2m
- Test cases as examples 1m
- Demo introduction 1m
- Demo: Simple Web Token serialization 8m
- Demo recap 0m
- Devil's Advocate. Motivation 1m
- Red/Green/Refactor 0m
- Ping Pong 1m
- Devil's Advocate 1m
- Gollum Style 1m
- Demo introduction 0m
- Demo: Simple Web Token parsing 9m
- Demo recap 0m
- Demo introduction 0m
- Demo: using the Simple Web Token through the Spike 4m
- Demo recap 0m
- Concerns 1m
- Summary 1m
Behavior Verification
41mins
- Introduction 1m
- Prerequisites 1m
- Outside-In versus Bottom-Up 0m
- Behavior Verification 0m
- How many things can go wrong here? 2m
- Triangulate all the things! 1m
- Triangulate all the things - not 1m
- Cyclomatic Complexity 1m
- Code Coverage 1m
- Componentization 2m
- Dependency Injection required 0m
- Formal proofs 1m
- Data Flow 1m
- Side Effects 0m
- Observation 0m
- Stimulus/Response 1m
- Initial coverage from Outside-In 1m
- Number of tests per unit 1m
- Characterization Tests 1m
- Demo introduction 1m
- Demo: Refactor review; Characterization Tests 6m
- Demo recap 1m
- Demo introduction 0m
- Demo: Data Flow; Side Effects 5m
- Demo recap 1m
- Demo introduction 0m
- Demo: making the user name code robust 10m
- Demo recap 1m
- Monolith 1m
- Summary 1m