At a glance

Duration:
1 day
Available in-house or on demand
Programming

Test Driven Development

Overview

Traditional, non-agile development approaches separate development into distinct analysis, design and coding phases. The underlying assumption is that the cost of change increases rapidly over time, so that it's important to make design decisions as early as possible. Unfortunately, subsequent experience with the problem domain and the implementation technology often shows us that our design decisions weren't optimal, and would have been better if we had made them later.

Test Driven Development (TDD) is a design technique that forces developers to focus on component interfaces, rather than the underlying implementation details. TDD produces components that are highly cohesive and loosely coupled, and supported by a fully automated regression testing suite, which vastly reduces the cost of subsequent changes. TDD developers are consequently free to incorporate lessons learned as the project progresses.

Intended For

Anyone involved in programming, or the design of software, will benefit from an understanding of test driven design.

Prerequisites

Examples and exercises will be presented in introductory level Java, so an understanding of Java is useful but not essential.

Learning outcomes

By the end of this course, participants will be able to:

  • Understand the fundamental principles of Test Driven Development
  • Understand how TDD relates to more traditional design approaches and how they can be used together
  • Implement simple applications using TDD
  • Use more sophisticated TDD techniques, when appropriate, for complex applications.

Content

  • Overview of Test Driven Development
  • Building a simple application using TDD
  • Agile modeling
  • Dependency injection
  • State vs interaction based testing
  • Mock object frameworks
  • The role of code coverage tools
  • Testing external interfaces
  • Testing graphical user interfaces

Method Used

Each facet of TDD is presented using a worked example, followed by discussion and a comparable exercise to be completed by the attendees. Examples and exercises are presented in Java, and developed using freely available open source tools.

Software Education Associates Limited
Freecall: 0800 268 773 Fax: 04 568 7920
Software Education Australia Pty Ltd
Freecall: 1800 145 152 Fax: 1800 145 715
Proud to support World Vision