Agile Engineering
practices training and
courses

2 days

Agile Engineering
practices training and
courses

TDD in Legacy Systems

2 days

TDD in Legacy Systems

Test Driven Development (TDD) is one of the core practices of Agile software development. Many companies have realized the benefits of using this technique to write code. However learning how to TDD is not always easy, using it on the existing system can be even harder.This two-day program provides a highly interactive exploration of unit test automation, principles and practices.  Participants will learn the main difficulties of using these principles in a live system, the main strategies for tackling such a task and how one can practically start writing those tests.

 

Objectives

  • Writing basic unit tests using
  • Learning principles of Test Driven Development
  • Experience Best Practices of unit testing
  • Understanding the difference between unit tests and acceptance tests
  • Understand the obstacles when writing tests on an existing system
  • Writing basic acceptance tests
  • Understand the principles of Isolation using modern isolation frameworks
  • Learn how to write code without breaking the system
  • Learn how to leverage frameworks to ease authoring of tests
  • Real Life examples

 

Target Audience

This is an entry-level class and appropriate for developers seeking practical knowledge about TDD and how to implement it into their working environment.

 

Prerequisites

Participants must have at least one year’s developing software using .NET and the ability to program in C# .NET 3.X or 4.0 (Visual Studio 2010)

 

Course Outline

  1. Introduction to Automated Unit Tests.
    • Writing the First Unit Tests.
    • Unit testing basics.
    • Executing and managing unit tests.
  2. Automating Acceptance Tests
    • Setting up a build server
    • Writing the first User Acceptance Test
    • Capturing system behavior using tests
  3. Basic Isolation Principles
    • Writing the first mock object.
    • Using a Mocking Framework.
    • Basic Isolation API
  4. Introduction to Design For Testability
    • What Makes a system testable
    • How to make test authoring easy
  5. Writing Correct Code
    • The Mikado Method
    • Clean Code
    • Basic Design Principles
  6. Advanced Isolation API
    • Handling constructors.
    • Handling internal object creation
    • Isolating statics dependencies
  7. Patterns for breaking dependencies.

 

Additional Information

Class Setup:

  • One workstation per two programmers
  • Development tools (e.g. compiler, IDE)
  • Visual Studio .NET is required
  • 16 students per course

 

This is a general syllabus and in case of an in-house training, it is possible to make the necessary adjustments to make it more appropriate for your organization’s specific needs.