- Test Driven Development
- Test First
- Red - Green Refactoring
-
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)
- Redução de Defeitos
-
Testes automatizados para multiplas plataformas
- Travis CI
- Jenkins
- 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
- Mudança no processo
- É necessário disciplina
- É necessário engajamento da equipe
- 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
- Maior qualidade
- Maior produtividade
- Nivela conhecimento das regras de negócio
- Nivela conhecimento dos componentes
- Nivela conhecimento técnico dos programadores
- basicamente os mesmos da TDD
- Ser respeitoso com colegas
- Ser altruista