- 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. The code is continually refactored to make the next change easier.
- This course should help you get over the initial hurdle of getting started with TDD. After that you'll likely still make changes in too big steps and your tests could be better, but at least you're writing them. Getting good at TDD will require further 6-12 months of deliberate practice.
| Section | Key Information |
|---|---|
| What? | Test-Driven Development (TDD) is an iterative technique: 1. Write a failing test 2. Write production code to pass it 3. Refactor continually This course helps overcome the initial hurdle; mastery requires 6–12 months of deliberate practice. |
| Why? | TDD saves time: - Instant feedback (tests run in <1 second) - Immediate detection of breaking changes - Less debugging — undo recent changes instead - Acts as a design feedback mechanism - Helps find sustainable designs faster Resources: - TDD Outcomes - How Test-Driven Development Works (And More!) - Research: Why Research on TDD is Inconclusive? (Most subjects have <1 year experience) |
| Who? | Prerequisites: - Written a few small apps (>1000 lines of code) Basic version (4 cr): Good JavaScript + OOP skills Extended version (4+1 cr): Additionally web dev + database experience (Full Stack Open, Docker, SQL) |
| How? | Course structure: - 6 exercises (small TDD/refactoring projects) - Exercise 5 (full-stack web app) is optional for +1 cr Tech stack: - JavaScript (or any language for from-scratch projects) - Node.js, Git, IDE (VS Code/IntelliJ) - Docker (helpful for full-stack) - GitHub (submission) - Screen recording software (OBS Studio) for submissions |
| When? | Course runs: Jan–May 2026 (annual) - Discord channel + study groups available - Can be used for self-study anytime |
| Course Credits | Two units: 1. Test-Driven Development (4 cr) → Exercises #1–4, #6 2. Test-Driven Development: Full Stack (1 cr) → Include Exercise #5 |
| Next Steps | Proceed to Practicalities or Exercises |
This TDD MOOC is a hands-on, project-based course for developers with basic coding experience. It teaches TDD through iterative exercises, offers both basic and full-stack tracks, and emphasizes rapid feedback, design improvement, and time-saving practices.
