Test Driven Development (TDD)

EssentialTest-Driven Development Workshop

Custom Team Workshop on TDD

 

Test-Driven Development Workshop Summary

3-day course for developers, providing hands-on experience with the techniques of Test-Driven Development (TDD). This course is designed for experienced developers who are comfortable with their programming language and the basics of object-oriented design. Attendees learn the techniques of test-first, refactoring, mock objects, and others. They learn how these techniques provide and maintain a very low defect-count, plus why TDD helps developers work fearlessly, swiftly, and comfortably on new features and bug-fixes. They will also learn how to work on legacy code: Building test-coverage for critical areas, and protecting areas of the legacy system that do not yet require any alteration.

What You Will Learn from Our Test-Driven Development Workshop:

  • The history and value of TDD.
  • The five practices that comprise TDD.
  • The Test-First mindset, and using it as Just-In-Time problem analysis.
  • Refactoring as Just-In-Time design.
  • Emergent Design and simple design.
  • Using Mock Objects to decouple difficult dependencies.
  • Adding tests to legacy code.

Duration

3 days.

Objectives

This set of practices for developers is at the heart of low-defect Agile software development. These techniques allow incremental development and Emergent Design to flourish, without degrading quality. This 3-day course also contains a significant section on the not-so-pleasant task of adding unit tests to legacy code. The course is currently offered in Java or C#.

Audience

Software developers

Prerequisites

Competence with either the Java or C# programming languages. A familiarity with basic object-oriented principles of design. Basic familiarity with an Agile process such as Scrum or XP.

Outline

  • Introductions and logistics
  • High-level Overview, Basics, and Getting Started
  • Refactoring
  • Refactoring and Design
  • Refactoring to OCP
  • Test-first
  • Mock Objects – Part I
  • Mock Objects – Part II
  • Legacy Code
  • Putting It All Together
  • Immersion
  • Course retrospective
  • TDD and Agile
  • ATDD Overview