Full Stack, Hands-on TDD

This workshop readies developers for success with Test-Driven Development. Together we’ll take small steps toward working a full, double loop TDD workflow. Over the course of two days attendees gain comfort with the TDD workflow, integrating it with other important practices such as pair programming, source control, emergent design, domain-driven design and lightweight modeling.

It’s two solid days of intense work — over 60% hands-on, iterative exercises. The rest of the time is a mix of fast, dense lightning talks, case study reviews, chalk-talks and facilitated group discussions.

You Will…

  • become competent-to-proficient with TDD.
  • experience the “aha moment” of double loop TDD.
  • know what the tools do and how to handle them.
  • are aware of (and have moves to avoid) common pitfalls.
  • feel confident test-driving new projects and features.
  • envision the roadmap to mastery.

The Flow

On the morning of day one, we level set on TDD, unit testing and design principles. During the afternoon we add test doubles (stubs, mocks, spies) to the mix. On day two we learn how to apply TDD in presentation and persistence layers, and finish with extensive practice in full stack, double loop TDD, working stories as vertical slices.

The Tools

This workshop uses JavaScript on Node.js. It’s not intended to be a deep dive on technology; we’re merely using these tools as a lab bench for experiencing TDD concepts on typical full stack web application. The focus is on learning and exercising TDD in a platform, language and framework agnostic way. Concepts and exercises are easily adapted to other languages, platforms and frameworks, and throughout our time together we’ll look at examples and alternatives from different stacks (e.g. .NET, Java, Ruby).

The TDD Workflow – Red, Green, Refactor Test Doubles: Stubs, Mocks & Spies
Testing: Value & Strategy Lightweight Modeling & TDD
Refactoring & Code Smells Boundaries & Leaky Abstractions
Testing the UI – Through & Under Common Testing Edge Cases
Testing Anti-patterns Integration & Testing
State vs. Interaction TDD Double Loop & Outside-in TDD
Domain Driven Design with TDD Testing Edge Cases (Promises, Exceptions, Async)
User Stories & Acceptance Tests Tool Selection & Alternatives
  • Developers new to testing.
  • Developers experienced testing on other platforms (e.g. Java, .NET, Ruby).
  • Technical leads building a testing practice within their team.
  • Testers with a technical background.
  • Playing agile coaches looking to sharpen their skills.
  • At least 2 years production development experience. We introduce concepts gradually but ramp up very quickly.
  • A laptop capable of running Node.js 4.0+.
  • A recent version of Git.
  • A (free) GitHub account. We’ll make extensive use of pull requests and feature branches for group work.
David Laribee

David Laribee

Workshop Author & Leader

David is the author and leader of this workshop. He has over 10 years production experience with TDD as a player coach and builder of eXtreme Programming teams.

Atlanta, GA

November 12-13, 2015 Join us for a public workshop hosted at Polygon Atlanta. Early bird pricing & group discounts are available!

Register Now