Test driven development (TDD) is a software development process where test cases are written before code is produced. TDD follows a cycle of writing a test, seeing it fail, writing code to pass the test, and refactoring code as needed. The tests provide feedback and ensure new code does not break existing functionality through regression testing. TDD encourages writing small, focused test cases with clear pass/fail outcomes to gradually build up the system through a red-green-refactor cycle.