Practical Test-Driven Development in Java (Live-Remote)


hands-on technical course

Instructor-led, remote hands-on training course
Language of instruction: English
Limit of 9 participants
Twelve (12) hours total contact time over three (3) days.
Contact us at to arrange a class or look for announcements on the main page or Calendar for scheduled public classes.

Multi-seat discounts (limit 9 per class)
2-3 seats: 10% | 4-5: 15% | 6-7: 20% | 8-9: 25%

Product Description

Instructor-led, remote hands-on training course in test-driven development using the Java language for coding exercises.

After completing this course you will be able to…

  • place TDD in its proper context in the development process
  • make informed judgments of when to use TDD, and know why you are using it
  • isolate code appropriately to enable automated unit testing and TDD
  • apply TDD both as a software design technique and as a unit-level regression testing technique.
  • develop new code in a test-driven fashion using the classic style of TDD
  • balance up-front design with emergent design based on context
  • recognize code smells and refactor code to address them


  • Audience: Software developers (programmers, testers, architects)
  • Prerequisites:
    1. Some real-world experience in software development, support, and/or delivery.
    2. Basic proficiency in the programming language used in class.
  • Duration: 3 days (one 4-hour session per day)
  • Format: Remote participation with live instructor

Class Agenda

Session 1

  • Course roadmap and setup
  • Learning objectives
  • Initial coding exercise – FizzBuzz
  • Goals of a professional programmer
  • How TDD supports those goals
  • Microtests
  • The TDD cycle (Red – Green – Refactor)
  • First TDD coding exercise – Prime Factors
  • Delivering vertical slices of functionality
  • Up-front design and emergent design
  • Development approach and “time until done”
  • Second TDD coding exercise – RPN Calculator
  • A command-line interface for the RPN calculator
  • Is TDD a development technique or a testing technique?
  • Structure of an automated test case

Session 2

  • What is a unit test?
  • Code isolation
  • Different ways of gaining confidence in our code
  • The test automation pyramid
  • Testing versus checking
  • Unit tests and the continuous delivery pipeline
  • Software design principles
  • Code smells
  • Refactoring demonstration
  • Refactoring exercise

Session 3

  • Refactoring exercise 2
  • Is emergent architecture possible?
  • TDD and frameworks
  • TDD and COTS products
  • TDD and configurable application platforms
  • Living with large automated test suites
  • Working with legacy code
  • Baking refactoring into your normal work flow
  • The case against unit testing and TDD
  • Course retrospective

To set up your development environment for the class: Setup instructions.


There are no reviews yet.

Be the first to review “Practical Test-Driven Development in Java (Live-Remote)”

Your email address will not be published. Required fields are marked *