A development approach where developers and stakeholders together model the business domain, aiming at understanding it, to easier develop and maintain a software solution.
The software is documented and designed around behavior and not just requirements.
That means creating behavior specifications that can be automated in order to verify behavior.
The idea of making testing a part of the development routine by creating unit tests to test behavior.
A common method when employing TDD is Red-Green-Refactor. Meaning that you create a failing tests with code stubs. After you have implemented the logic the test should pass - become green. Finally you refactor the code. This is repeated through the process.
Writing and testing behavior outside in.