Test-driven development (TDD) is a software development technique that follows three rules: 1) write a failing test first, 2) write code to pass that test, and 3) refactor code as needed. TDD involves short development cycles of writing a failing test, minimal code to pass that test, and refactoring code. Benefits include more trustworthy code and executable documentation, but limitations include difficulty testing some code and need for management support. Unit tests test individual parts of code, integration tests combine modules, and system tests evaluate full system requirements.