Test Driven Development

Test-driven development is a practice that most Agile development teams follow. Developing a product in a test-driven manner lowers the overall cost of software, makes code more manageable, and provides a safety harness into future enhancements to the code base. Coupling TDD with Refactoring becomes the foundation for developing a high degree of Craftsmanship for our programming.

In this course, we will start off by focusing on what TDD is, what it is not, and most importantly why we would want to develop in such a manner. From that foundation, we will start introducing test driven practices, continually building up our skills. We will also focus on code maintainability and readability through refactoring. Finally, code metrics will be introduced along with strategies for working with legacy code. We will also explore the practices around Refactoring and how it can be used as a design tool.

Upon completion of this course, students will understand the basics of test driven development; include unit test cases and mock objects along with the frameworks that support this testing.

The course is offered in C# and Java. Students will be pairing during the course. The course will be heavy in exercises and the exercises will build upon each other. Whenever practicable, we will use samples from real projects.

Detailed Course Guide

Introduction to Test Driven Development – 1 day

This course will be provided using either Java or C#, depending on the preference of the students. We will go into depth on what Unit Testing is, what it is not, and how to best utilize it in a development shop. We will be pairing on a project, creating Unit tests and writing the code to make them pass. We will also look at how to use tools such as mock objects and dependency injection in order to start inserting tests in our legacy code as well.

Principles of Refactoring and Emergent Design - 1 day

In order to ensure the highest level of code quality, as well as the best possible design, we need to be continuously improving the design of the code, without changing the behavior. We do this in small increments, checking in our code continuously. During this session, we will take the code we wrote in the TDD session, and practice some basic refactoring activities. We will also be learning about continuous integration and how it improves code quality and project reliability.

Course Information

Who Should Attend: Programmers

Duration: Two Days

Where: Private

  • A two day private onsite for up to 25 attendees (minimum 3 days onsite)