Skip to content

Instantly share code, notes, and snippets.

@mjacobus
Created June 26, 2014 20:49
Show Gist options
  • Save mjacobus/98ee395c8daae5e94912 to your computer and use it in GitHub Desktop.
Save mjacobus/98ee395c8daae5e94912 to your computer and use it in GitHub Desktop.

TDD

  • Test Driven Development
  • Test First
  • Red - Green Refactoring

Benefícios

  • Melhor Design

    • Modular
    • Unidades testáveis
  • Confiança de fazer mudanças

    • Redução de Defeitos
      • Os possíveis casos de uso são testados durante a implementação
    • Ajuda a encontrar bugs quando um novo código produz um bug novo
      • Se os testes tiverem algum valor
    • Define comportamento do software
    • Documenta código
    • Detecta se o novo código afeta o código existente
    • Ajuda a encontrar possíveis fraquezas no código (code coverage)
  • Testes automatizados para multiplas plataformas

    • Travis CI
    • Jenkins

Outros Benefícios

  • Pequenos ganhos deixa o desenvolvimento mais divertido (Gamification)
  • Maior confiança que o código faz o que devia
  • Código funcional ao longo do processo

Desafios

  • Mudança no processo
  • É necessário disciplina
  • É necessário engajamento da equipe

Processo

  • Resistir ao desejo de pré-otimizar o código. De começo apenas faça o teste passar
  • Por focar em escrever apenas o código necessário para passar os testes, o design fica mais limpo fica e claro do que código feito com outros métodos
  • Muitos testes para um método pode indicar que ele está fazendo coisas demais

Pair Programing

Benefícios

  • Maior qualidade
  • Maior produtividade
  • Nivela conhecimento das regras de negócio
  • Nivela conhecimento dos componentes
  • Nivela conhecimento técnico dos programadores

Desafios

  • basicamente os mesmos da TDD
  • Ser respeitoso com colegas
  • Ser altruista
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment