13º Dojo – Tente Desenvolver Diferente com TDD no Agile Brazil 2011
- Data: 29/06/2011
- Formato: Kata/Randori
- Moderadores: Altieres e Mauricio
No Agile Brazil 2011 realizamos um dojo para ensinar a técnica de TDD e compartilhar um pouco de nossa experiência com essa prática.
O TDD (Desenvolvimento Dirigido por Testes) é uma prática de engenharia de software que através de testes automatizados ajuda o desenvolvedor a encontrar a melhor solução para um determinado problema.
Este é o mantra do TDD: Vermelho, Verde e Refatoração.
- Vermelho: Escrever um pequeno teste que não funcione e que talvez nem mesmo compile inicialmente.
- Verde: Fazer rapidamente o teste funcionar, mesmo cometendo algum pecado necessário no processo.
- Refatoração: Eliminar todas as duplicatas criadas apenas para que o teste funcione.
Elencamos algumas recomendações que podem ajudar a guiar na prática do TDD:
- Tenha uma lista de tarefas a serem feitas
- Ajuda a ter foco e a não esquecer de nada
- Guia o desenvolvimento para alcançar o objetivo
- O objetivo do TDD é criar código limpo que funciona
- Sempre escreva o teste primeiro, ajuda a pensar no que fazer
- Implemente o mínimo necessário para que o teste passe
- O tamanho dos passos
- Pode variar de acordo com a complexidade do que está sendo desenvolvido
- Quanto mais difícil, menores os passos
- A metáfora dos dois chapéus:
- Ao adicionar ou corrigir alguma funcionalidade, use o chapéu de desenvolvedor
- Quando for melhorar o código use o chapéu de refatorador, refatore somente quando nenhum teste estiver falhando.
- Design emergente
- Pense simples (o que nem sempre é fácil)
- Aprenda a cada passo
- Quando a solução pedir algo mais complexo, refatore!
- Para que servem os testes?
- Fornecem feedback rápido sobre o design: acoplamento, coesão, simplicidade
- São documentação executável
- Dão coragem para refatorar
- Materializam o objetivo
- Fazem a qualidade ser parte do processo
- Estou praticando TDD, meu código é bom?
- Não! TDD te mostra o caminho que está sendo seguido
- Te ajuda a perceber a necessidade de usar princípios de orientação a objetos
- Lembre-se: você não gasta tempo, mas investe tempo criando seus testes.
No final da apresentação recebemos diversos feedbacks positivos e algumas críticas construtivas para que possamos melhorar ainda mais nas próximas apresentações.
“Para mim que não conhecia TDD, a palestra foi muito boa, já que os exemplos foram simples e os conceitos ficaram claros.”
“Embora os palestrantes tenham tentado dinamizar, a apresentação ficou um pouco parada. Contudo foi uma boa apresentação, deu para entender bem os conceitos.”
“Achei bem legal. Não foi só living code. Durante o procedimento foram passados vários princípios do porque e porque.”
Muito obrigado a todos pela presença no Dojo e parabéns a @acdesouza, @marinampires_rj e @brunomatheus_bm pela coragem e determinação em participar do Dojo Randori.
Disponibilizamos o código desenvolvido no github e os slides da apresentação no slide share.
Deixe seu comentário, seu feedback é muito importante para que possamos evoluir!


[...] 17 horas, um tutorial e uma palestra foram apresentados pelo time da Webgoal: “Tente desenvolver diferente com TDD“ com Mauricio Matsuda e Altieres Lopes na trilha Engenharia e “Scrum na Horta“ [...]
[...] – Scrum – Caelum . Testes automatizados na sua empresa – GreenBar . tdd – tente desenvolver diferente – técnica, pair, qualidade x débito técnico . distributed retrospectives – [...]