Test-Driven Development (TDD) is an iterative programming technique where you first write a failing test, which describes what you want to achieve, and after that write production code to pass the test. This course is too short for learning TDD - that will take about 6-12 months of practice - but hopefully it will help you to get over the initial hurdle of getting started with TDD, and prepare you for a journey of mastering TDD.
Fewer bugs. Less debugging. Better design. More fun.
In the following 1-minute video, Dave Farley elaborates some more:
You are ready for this course if you have no problems writing small applications of a few thousand lines of code.
To do the extended version of this course (4+1 cr), some experience in writing web apps and using a database is recommended: you will need to implement a small full-stack web app. To that end, you are expected to know (or learn quickly) the things that are covered in the courses Full Stack (parts 0-5), DevOps with Docker (parts 0-2), Tietokantojen perusteet/any SQL tutorial.
This course consists of six exercises (or small projects) about using TDD, refactoring and writing tests. Exercise 5 (full-stack web app) is optional, but if you do it, you will get an extra study credit. For that purpose, this course is visible as two course units:
- Test-Driven Development (4 cr) - do just the basic exercises (#1-4, #6)
- Test-Driven Development: Full Stack (1 cr) - do also the full-stack exercise (#5)
This course will run 17.1.-31.5.2022 as a work-at-your-own-pace online course. There will be a Discord channel and weekly study groups. See practicalities for details.
Of course you can also use this course material for self-study whenever you want, even if the course is not active.