No Desenvolvimento Guiado por Testes (TDD), o ciclo tradicional de desenvolvimento (Codificação -> Teste) é invertido. O ciclo do TDD consiste basicamente nos seguintes passos:
1. Escreva um código de teste para uma determinada funcionalidade: O teste é escrito antes mesmo da funcionalidade ter sido implementada e, por este motivo, o código de teste irá falhar (RED).
2. Implemente a funcionalidade: Nesta etapa, o objetivo é escrever o código mais simples possível para que os testes tenham sucesso (GREEN).
3. Refatore: Nesta etapa, o objetivo é aperfeiçoar o código escrito anteriormente sem modificar o seu comportamento externo observável, ou seja, sem modificar sua interface. (BLUE)
"No TDD, o refatoramento do código deve ser realizado antes de se escrever a aplicação que deve ser testada".
ERRADO. Os testes é que devem ser realizados antes do código da aplicação.