Questão correta, pessoal... Este é o princípio do TDD (desenvolvimento orientado a testes). Sommerville divide as etapas do desenvolvimento orientado a testes em:
1) Você começa identificando o incremento de funcionalidade necessário. Este, normalmente, deve ser pequeno e implementável em poucas linhas de código.
2) Você escreve um teste para essa funcionalidade e o implementa como um teste automatizado. Isso significa que o teste pode ser executado e relatará se passou ou falhou.
3) Você, então, executa o teste, junto com todos os outros testes implementados. Inicialmente, você não terá implementado a funcionalidade, logo, o novo teste falhará. Isso é proposital, pois mostra que o teste acrescenta algo ao conjunto de testes.
4) Você, então, implementa a funcionalidade e executa novamente o teste. Isso pode envolver a refatoração do código existente para melhorá-lo e adicionar um novo código sobre o que já está lá.
5) Depois que todos os testes forem executados com sucesso, você caminha para implementar a próxima parte da funcionalidade.
Fonte: Sommerville, 9ª Edição, Capítulo 8.
Bons estudos!