Practical Test Driven Development by Knowit and Tieturi
Get familiar with the basics of Test Driven 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:
- Write a failing test
- Implement minimally to make the test pass
- 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.
Contents of the course:
Test driven development
- TDD theory inspirational seminar and demonstration
- Q & A
Unit testing best practices
- Bad tests
- Clean code
- Design principles
- Demonstrative pairing
TDD Practical exercises
- Mob programming
- Pair programming
The course can be extended to a 2 day course, in which case there will be more practical exercises.
- 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.
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.
The course is intended for IT professionals involved in Software development
Days begins at 9.00 and end at 16.30 - 17.00.
The course is arranged in collaboration with Tieturi.