Test-Driven Development
TDD (Test-Driven Development) is such a big topic, plenty of books have been written about it. Indeed, one of those books was written by me: Test-Driven iOS Development (http://www.pearsoned.co.uk/bookshop/detail.asp?item=100000000444373). So, I won't go into too much detail here. If you've never come across test-driven development before, or the phrase "red-green-refactor," I recommend Growing Object-Oriented Software, Guided By Tests (http://www.growing-object-oriented-software.com/) (unless you're focusing on iOS, of course).
The point of TDD
People talk about test-driven development as a way to ensure high test coverage. It does that, for sure. But its main utility is as a design tool. You can construct an executable specification of a module or class, based on how you need to use that class in your product. Often, I'll create some tests while I'm designing a class, but remove them as the code changes and they become obsolete.
I...