Testing is not a verification technique. Testing is a design, documentation, and specification technique that incidentally verifies that the software works as intended. This paper discusses and demonstrates the disciplines and techniques of test driven development (TDD). Demonstrations are in Java using the JUnit and FIT frameworks for unit testing and acceptance testing respectively.