Test-Driven Development

Test-Driven Development

A 3-day course for developers, providing hands-on experience with the techniques of Test-Driven Development (TDD), now also known as Behavior-Driven Development (BDD). 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.

Level:

Intermediate to advanced

Length:

3 days

Intended Audience:

Experienced developers who are comfortable with their programming language and the basics of object-oriented design.

Pre-requisites:

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

Learning objectives:

  • Understanding how TDD fits into an Agile process, and how it solves the “Agilist’s Dilemma.”
  • Test-First as Just-In-Time problem analysis.
  • Refactoring as Just-In-Time design.
  • Using Mock Objects to decouple difficult dependencies.
  • Adding tests to legacy code.

Description:

Test-Driven Development has become a must in most agile environments. Quality must be kept high, with the code base in a highly functional state at all times. In oder to accomplish this it is necessary to make small, incremental changes to code and test often. This describes the basics behind TDD. This course is an intense, hands-on course where participants will create tests and working software using either Java or C# tools they are familiar with already. Experiencing TDD in this fasion helps with knowledge retention as well as getting over the “it will never work” hump often associated with a new technique or practice.

This course is best done as an on-site course where entire teams can work near each other and share experiences throughout the course. The “light bulb moments” which spontaneously occur and lead to team-wide learning are powerful success factors which cannot be experienced by sending one person to a course and asking them to train others. Published reports show teams using TDD significantly reduce the number of defects without affecting the overall time used for development and testing. See “TDD Improves Quality” for an example of one such report.

Leave a Comment