Introduction to Test-Driven Development
Build your skills to Discover, Collaborate and Succeed

Introduction to Test-Driven Development

Dates & Locations

Date City, State Address Sponsor Map Instructor
No open enrollments at this time, please check back.

Course Description

The practice of Test Driven Development (TDD) allows an agile development team to efficiently convert user defined requirements into a well-designed, fully tested working implementation that not only meets the business need, but will also be easy and safe to extend, maintain and enhance over time. Rather than spending weeks or months on an extended “design phase,” agile teams use TDD to evolve and optimize their design and implementation over time, to meet the team’s evolving understanding of the business requirements.

You will learn the basic skills required to implement TDD in your agile project. Developers will participate with the instructor in a live example of turning a business requirement into well-designed working code, using a test driven approach.

Rather than presenting TDD at a purely conceptual level, this introduction demonstrates hands-on coding and the use of widely adopted development tools and testing frameworks for the Java development language. This introduction will benefit a new Agile project team that attends as a group, providing a common foundation of knowledge and experience for everyone on the team.

Objectives

  • Understanding how TDD enables emergent, incremental design for an Agile team
  • The TDD Test-Code-Refactor cycle
  • Using unit tests as executable specifications that document the behavior of the code that they test
  • Isolating units to be tested using test doubles and mocking frameworks
  • Understanding how TDD fits into an Agile workflow and enables long term team productivity

Topics Covered

1. Conceptual Overview

  • TDD What and Why
  • The Test-Code-Refactor Cycle
  • TDD in an Agile Development Process

2. Unit Test Mechanics

  • Setting Up the Environment
  • The Structure of a Unit Test Class
  • Assertions and Matchers
  • Handling Error Conditions

3. Isolating Code with Test Doubles

  • What are Fakes, Stubs, and Mocks
  • When and Why to Use Doubles
  • Basic Usage of the Mockito Framework
  • Advanced Mocking Scenarios

4. Intro to Emergent Design

  • Identifying Common "Code Smells"
  • Applying Object Oriented Design Principles
  • Refactoring
  • Refactoring to Design Patterns

5. A Basic TDD Episode

  • Analyzing a Simple Requirement
  • Writing a First Test by Intention
  • Making the Test Pass
  • Completing the Specification with Triangulation
  • Refactoring to Improve the Design

6. Live Exercise: Test Driving a Story (Coding Dojo Format)

  • Our Example User Story
  • Sketching an Approach
  • Test Driving the First Confirmation
  • Using Test Doubles
  • Refactoring to Improve the Design

Audience and Certification Details

This course is suitable hands on developers, scrum masters, and functional leaders who need a solid understanding of the practice and benefits of TDD. Coding experience is helpful in understanding the concepts being presented, but not required.

Prerequisites

Participants should have a comfort level with technical terminology, and some knowledge of and/or experience in Agile development processes such as Scrum or XP.

Duration

2 days

Price

Please call Icon at (636) 530-7776 for private, on-site pricing