Company-specific: Practical Test-Driven Development

Familiarize yourself with an agile way of software development!

Test Driven Development (TDD) is a programming technique rediscovered by programming guru Kent Beck in the 1990s. It is about writing automatic self-verifying tests, so-called unit tests, before writing production code.

The basic steps in TDD consist of:

  1. Write a failing test
  2. Implement minimally to make the test pass
  3. Refactor - make the code as good as possible

Regardless of how simple the above looks, TDD is often perceived as difficult to get started with. To be able to test code in a good way, you must also know what characterizes good code, which means the course extends into related topics such as software design, refactoring and clean code.

Potential gains from TDD

  • Production code that per design is testable. Often it is difficult to write unit tests after production code is ready because the code is too tightly coupled.
  • The technique encourages programmers to solve today's requirements and nothing more. When currently redundant abstractions are used, code complexity is increased. When this behavior is then never requested, you are left with an overcomplicated code base.
  • Refactoring becomes easier as the unit tests act as a regression suite for code changes. The moment programmers fear making improvements to the code base is when code quality decreases. When this happens, the cost per added functionality in the code base will be higher.
  • The technique encourages iterative development. This relieves the programmer cognitively, as the method leads to shorter and more focused work efforts. At the same time, it leads to less risk for the project, as functionality is delivered continuously.

Learning objectives:

  • Increased understanding of code quality
  • Techniques for refactoring
  • Ability to apply TDD to simpler problems
  • Avoid common pitfalls
  • A source of inspiration and catalog of future learning about TDD

After completing the course you are familiar with TDD and its use case. You are able to apply it to simpler problems at work. You are able to recognize good code from bad code. You will have a catalogue for future learning in the topic.

Contents of the course:

Test driven development

  • TDD theory inspirational seminar and demonstration
  • Q & A

Unit testing best practices

  • Bad tests

Clean code

  • Clean code
  • Refactoring
  • Design principles
  • Demonstrative pairing

TDD Practical exercises

  • Mob programming
  • Pair programming

Tar­get Group

The course is intended for IT professionals involved in Software development.


The course is intended for developers. Since we are using techniques such as trainer demonstration, pairing and mob-programming, it is also okay that not all participants are developers. The course is by standard held in Java and participants of the course are expected to have their own development environment (at least one per pair for the pairing exercises). The course can be requested to be held in another language than Java (TDD is language agnostic). Previous experience from unit testing is good but not a requirement.


This is a 1-day course. It is possible to extend the course to two days , which allows time for more hands-on exercises. Training days begin at 9:00 and end at 16:00 - 16:30.

Training is delivered in English.

To discuss the arranging of a course for your organization, please contact:

Kari Kakkonen, Director of training, Knowit Solutions Oy


Mob: +358 40 5239004

Pricing starting from 2500€