desenvolvimento incremental com test driven development

Post on 24-Jun-2015

834 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slides da palestra sobre Desenvolvimento Incremental com Test Driven Development na SESTINFO 2011 da Universidade Metodista de São Paulo.

TRANSCRIPT

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?

top related