TDD introduces NUnit for writing tests before production code. It requires failing tests first, then just enough code to pass each test. NUnit attributes define tests, fixtures, and assertions. Tests for bank accounts that hold balances and transfer funds demonstrate a TDD process of repeatedly writing a failing test, then minimum code to pass it.