View
834
Download
0
Category
Preview:
DESCRIPTION
Slides da palestra sobre Desenvolvimento Incremental com Test Driven Development na SESTINFO 2011 da Universidade Metodista de São Paulo.
Citation preview
DESENVOLVIMENTO INCREMENTAL COM TEST
DRIVEN DEVELOPMENT
Quem sou Eu?
Leonardo R. Aguiar(Mais conhecido como Léo ¬¬)
#SouDev na #TGS (Thomas Greg)
leonardo.r.aguiar@gmail.com@L30n4rdohttp://leonardoRaguiar.com.br/blog/
Agenda do dia!
• Manifesto Ágil• Princípios S.O.L.I.D.• O que é Test Driven Development?– Ciclo do TDD– TDD Não é uma técnica de Teste de Software– Objetos Mock e Stub
• Desenvolvimento “Tradicional”• Desenvolvimento com TDD• Benefícios do TDD• Paradigmas e Falácias sobre TDD
Manifesto Ágil
• Indivíduos e interação entre eles mais que processos e ferramentas
• Software em funcionamento mais que documentação abrangente
• Colaboração com o cliente mais que negociação de contratos
• Responder a mudanças mais que seguir um plano
Princípios S.O.L.I.D.SRP• Single Responsability Principle
OCP• Open-Closed Principle
LSP• Liskov Substitution Principle
DIP• Dependency Inversion Principle
ISP• Interface Segregation Principle
O Que é Test Driven Development?
TDD = Test-First + Design Incremental
Ciclo do TDD
Escrever um teste que falhe
Fazer o teste passar
Refactoring
Ciclo do TDD
TDD x Teste de Software
TDD
Integração
AceitaçãoSistema
Operação
Unidade
Objetos Mock
Estado Comporta-mento
Objeto / Instancia
Mock x Stub
Mock• Testa a Interação entre Objetos
Stub• Testa o Estado do Objeto
Desenvolvimento Tradicional
Escrevemos o Código Primeiro
Código com Alto Acoplamento
• Necessidade de comentários para dizer o que o código faz• Necessidade de alguém para explicar o que o código faz
Código Difícil de Entender
Debug
Desenvolvimento com TDD
Código Claro
• Cada teste representa uma funcionalidade do sistema
Documentação Executável
Feedback rápido sobre qualquer alteração no sistema
Diminuição de Debug
Benefícios do TDD
Cobertura de Teste
Documentação
• Design Patterns• Princípios S.OL.I.D.
Arquitetura
Paradigmas e Falácias sobre TDD
É mais demorado desenvolver com
TDD
Eu não sei o que testar Testar é difícil
Desenvolvendo com TDD não
preciso de testes
O projeto está atrasado
Eu não tenho tempo para testar
TDD só funciona com metodologias
ágeis
Conclusão
“TDD não é sobre testes, é sobre como utilizar testes para criar sistemas de forma simples e incremental. Isto não somente aumenta a qualidade do software, mas também simplifica o processo de desenvolvimento.”
Fonte: Test-Driven Development: A J2EE Example. Berkeley: Apress, 2004.
PERGUNTAS?
Recommended