Descrição
O Desenvolvimento Dirigido por Testes é uma das principais práticas de programação da XP. Muitos de nós aprendemos ao longo dos anos o valor de escrever testes automatizados para o nosso código. Muitos de nós também conhecemos a dificuldade de escrever testes após o código já está pronto. O Desenvolvimento Dirigido por Testes tem uma abordagem diferente para garantir que estamos testando todo o código, o tempo todo.
A prática do Desenvolvimento Dirigido por Testes requer uma mudança na forma de programar e pensar. Você não escreve os testes como uma consequência. Você não tentará verificar se o código que você escreveu está funcionando. Ao invés disso, você escreverá testes como parte do quotidiano, em cada minuto de construção do software. Ao invés de escrever especificações detalhadas do design no papel, você as escreve no código. Ao invés de esforçar-se primeiramente em projetar perfeitamente um sistema no papel, usa os testes para orientar o seu design. Ao invés de codificar durante horas só para descobrir que o planejamento estava equivocado, use o Desenvolvimento Dirigido por Testes para lhe ritmar, assegurando sempre o progresso com a sólida estrutura de uma suíte de testes executáveis que sempre cresce.
Os passos:
- Tenha noção para onde você está indo.
- Escreva um teste que especifique pouca funcionalidade.
- Garanta que o teste falhe (você ainda não criou a funcionalidade!).
- Escreva somente o código necessário para fazer o teste passar.
- Refatore o código, garantindo que ele tenha um design claro e simples para as funcionalidades construídas até o momento.
- Repita até que você obtenha o comportamento desejado.
As regras:
- Teste tudo que possivelmente possa falhar.
- Os testes devem vir primeiro.
- Todos os testes passam 100% o tempo todo.
O Desenvolvimento Dirigido por Testes é infeccioso! Os desenvolvedores pedem por ele. Os desenvolvedores não o abandonam depois de terem lhe dado uma real oportunidade.
Benefícios
- Os módulos testáveis são desacoplados de outras classes complexas, resultando em módulos fracamente acoplados. Módulos fracamente acoplados são um sinal de um bom design.
- O código é escrito de forma que os módulos sejam testáveis em condições de isolamento. O código escrito sem os testes em mente é muitas vezes altamente acoplado, uma grande dica que você tem um pobre design orientado a objeto. Se você tiver que escrever os testes primeiro, irá encontrar formas de minimizar as dependências no sistema para poder escrever os testes.
- Os testes agem como documentação, fornecendo exemplos concretos de como utilizar o módulo a ser testado.
- Os testes são os primeiros clientes das classes; mostram como o desenvolvedor planejou que a classe fosse usada.
- Os testes agem como uma rede de segurança. Notificando o programador imediatamente quando um defeito de efeito colateral é introduzido no sistema.
-
O Desenvolvimento é ritmado. Você pode parar a qualquer hora que os testes descreverão o progresso feito até o momento. Cada sessão de programação dá uma sensação de satisfação pela obtenção de código funcional.
Informações Relacionadas
Para obter mais informações, veja Diretrizes para Desenvolvimento Dirigido por Testes. |