Test-driven development (TDD) is a software development process where test cases are written before code is produced. The process involves writing a failing test case, producing the minimum amount of code to pass the test, and refactoring the new code. TDD encourages writing automated tests that can be repeatedly executed after small code changes to ensure all tests continue to pass.