Test Driven Development (TDD) is a software development practice that focuses on creating unit test cases before developing code. It involves 3 phases - creating precise tests, making minimal changes to fix failed tests, and refactoring passed tests. Popular frameworks that support TDD include Junit for Java, PyUnit for Python, and Rspec for Ruby. TDD fits into Agile development by providing constant feedback to avoid building unusable software and align with changing requirements.