A development process where unit tests are written before the actual code to drive design and ensure correctness.