Apesar de muitas empresas ainda não utilizarem técnicas de teste de software para o desenvolvimento dos seus produtos, alegando o atraso, o tempo ou o custo para esta tarefa, as pesquisas indicam que os testes ajudam na garantia de qualidade do software.
2. O QUE É TDD? TDD é uma técnica de automação dos
testes, onde nenhum código de produção
é escrito sem antes se escrever um
teste para ele.
Objetivos
Detecção de falhas e defeitos antes
de disponibilizar em produção
Verificação do correto funcionamento
de uma aplicação
Qualidade do código
3. IMPACTOS DA
FALTA DE
TESTES Retrabalho
Maior números de ticket no dia de
uma atualização do sistema
Insegurança no código realizado
Prejuízo à imagem da equipe
4. PONTOS
POSITIVOS DO
TDD
Qualidade do código
Um dos principais ensinamentos, senão o
principal, do TDD é que se algo não é
possível de ser testado então foi
desenvolvido de forma errada.
Raciocínio
Para se criar o teste antes do
desenvolvimento é dispensado um tempo
maior na lógica da funcionalidade e seu
funcionamento, forçando o desenvolvedor
a encarar o código de outra maneira.
Segurança
Maior segurança da equipe e do
desenvolvedor no código que será
entregue.
6. COMO
COMEÇAR
Vermelho
Escrita do primeiro teste antes mesmo da
lógica existir. Este teste é feito para
falhar.
Verde
Escrever um código para que o teste passe.
Esta lógica deve ser desenvolvida da
forma mais simples possível eliminando
complexidades desnecessárias fazendo com
que a evolução do código ocorra de forma
segura.
Refatorar
Melhoria do código. Neste ponto são
removidas duplicações, múltiplas
responsabilidades e o código fica cada
7. EXEMPLO
PRÁTICO
EXERCÍCIO:
Retornar o N-ésimo número de
Fibonacci.
N-ésimo número de Fibonacci é obtido
pela soma dos dois números anteriores
da sequência, sendo que o primeiro
número é 0 e o segundo é o 1. Sendo
assim:
o terceiro é 1 (0 + 1)
o quarto é 2 (1 + 1)
assim por diante.
8. EXEMPLO
PRÁTICO
1)Escrevendo o teste (red)
Por definição o primeiro número de
Fibonacci é zero (Fibonacci(0) = 0).
Abaixo descrevemos o teste que atende
a esta especificação
Este é o passo red, como estamos desenvolvendo o
teste primeiro o método nem existe ainda, mas já
estamos pensando em como ele deve funcionar.
9. EXEMPLO
PRÁTICO
2) Fazendo o teste passar (green)
Neste momento você fará o código mais
simples para que o teste passe ou
seja, fazer o método retornar 0.
10. EXEMPLO
PRÁTICO
3) Refatorar (refatorar)
Neste momento o código está
funcionando e não tem como ficar mais
limpo. Mas obviamente não está pronto.
A partir daí siga o desenvolvimento do
método
11. CONSTANTES E
BABY STEPS
Retornar constantes e baby steps,
obviamente, não são regras imaculadas
do TDD. Conforme você for adquirindo
experiência e segurança em seguir
adiante, alguns passos podem ser
pulados, inclusive começando por uma
implementação mais próxima da solução
final.
13. NÃO!!
Se estamos, por exemplo, escrevendo a implementação de um DAO
(classe que se comunica com o banco de dados), talvez escrever os
testes antes não vá ajudar tanto, afinal não há grandes decisões de
design a serem tomadas em classes como essa, e a funcionalidade
tende a ser simples. Escrever o teste depois, portanto, não será
tão diferente de escrever o teste antes.
Notas do Editor
Como o método ainda não foi implementado ele falhará. RED