Test Driven Development with Unit tests and Integration Tests
The golden rule of Test Driven Development is never write new functionality without a failing test.
Yes. You need to start each feature writing a failing acceptance test, which guides your application design and defines application behaviour. While this test is failing, the feature is not implemented by your application. Then you should write unit tests for separate units that make up the feature.