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.

Ciclo de TDD

Este é o mantra do TDD: Vermelho, Verde e Refatoração.

  1. Vermelho: Escrever um pequeno teste que não funcione e que talvez nem mesmo compile inicialmente.
  2. Verde: Fazer rapidamente o teste funcionar, mesmo cometendo algum pecado necessário no processo.
  3. 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:

  1. 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
  2. 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
  3. O tamanho dos passos
    • Pode variar de acordo com a complexidade do que está sendo desenvolvido
    • Quanto mais difícil, menores os passos
  4. 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.
  5. Design emergente
    • Pense simples (o que nem sempre é fácil)
    • Aprenda a cada passo
    • Quando a solução pedir algo mais complexo, refatore!
  6. 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
  7. 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
  8. 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@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!

2 Comentários

  1. [...] 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“ [...]

  2. [...] – Scrum – Caelum . Testes automatizados na sua empresa – GreenBar . tdd – tente desenvolver diferente – técnica, pair, qualidade x débito técnico . distributed retrospectives – [...]

Deixe seu comentário

*

*