Test-Driven Development in Java

2 Day Course
Hands On
Code PSD033

Book Now - 1 Delivery Method Available:

Scheduled Online Onsite


The Test-Driven Development course presents a number of modern practices for developing code based on an iterative and incremental development lifecycle. Agility and predictability are two qualities often missing from software development. A test-driven approach, in which design is grown and code delivered according to functionality or risk incrementally, forms the basis of the construction phase of an iterative and incremental development. The use of unit testing provides confidence in existing code and supports the ability to refactor code as development unfolds.

The course can be run as a seminar or as a practical course. It is based on lecture material, demonstration, discussion and hands-on labs in Java.


Hide all

Iterative and Incremental Development (6 topics)

  • Visibility of development
  • Functional, operational and developmental requirements
  • Continuous design
  • Scenario-driven increments
  • Risk-driven increments
  • Agile development

Unit Testing (7 topics)

  • Traditional view of testing
  • A more useful perspective
  • Levels of testing
  • Design for testing
  • Testing as a driver for design
  • Writing test cases
  • Testing frameworks and JUnit

Refactoring (5 topics)

  • Spaghetti architecture and software entropy
  • Refactoring as software hygiene
  • Evolving a design through refactoring
  • Practices for avoiding redundancy, eliminating code duplication and simplifying code
  • Refactoring and patterns

Testing Techniques (7 topics)

  • Granularity of tests
  • Testing scenarios and states rather than methods
  • Coverage issues
  • Testing normal and exceptional outcomes
  • Mock Objects
  • Testing I/O
  • Refactoring test cases

Dependency Management (5 topics)

  • Coupling and cohesion issues for testing
  • Interfaces versus concrete or partly abstract classes
  • Eliminating Singletons and statics
  • Eliminating cyclic dependencies
  • Reducing coupling between presentation logic and application logic


The course is suitable for software developers familiar with object-oriented principles and practices. Good Java programming skills are assumed.

or call:408-759-5074

Course PDF


Share this Course


Recommend this Course