Test Driven Development – Deep Dive Workshop

Page

By now Test-Driven Development (TDD) is a well-known and appreciated practice exercised by many development teams around the globe.

Unlike the name suggests, TDD is not a testing technique but a development technique that results in cleaner, high-quality code. Implementing effective and useful TDD is a complicated task that requires developers to have both discipline and familiarity with a set of test automation tools.

This 2-day workshop explains the TDD as a design methodology, briefly introduces the tools, and then dives into complex issues of real-world problems: APIs, complex integrations, TDD in legacy code, and more. It includes hands-on exercises (about 50% of the workshop’s duration). Attendees will practice the needed techniques to start testing both new and existing code.

The workshop is intended for: Software developers and software team leaders.

Workshop length: 2 days.

Contact Gil for more details

Workshop goals

Following the workshop, attendees will be able to:

  • Describe where unit testing fits in the quality process
  • Decide which tests to write for what
  • Break down requirements into test cases
  • Use TDD to develop new code
  • Use TDD on legacy code
  • Use characterization tests for locking legacy code
  • Refactor code to make it more testable
  • Refactor tests to make them more maintainable

Workshop agenda

  • Simple design
  • Coding by intention
  • TDD as a design methodology
  • Adapters and facades
  • TDD, ATDD and BDD – what are the differences
  • TDD with complex frameworks (e.g. Java’s Spring)
  • TDD in legacy code
  • Refactoring for testability as preparation for TDD
  • Characterization tests and approval tests
  • Testing strategy in real world applications
  • Develop features inside a legacy app in TDD

 Prerequisites

  • Attendees need to have their own laptops ready and download the exercises beforehand.
  • The training materials are targeted to either Java, JavaScript, Python, C, C++ or C# developers.
  • Familiarity with unit testing is required.

Contact Gil for more details