test driven development

12
Test-Driven Development Francisco Clauvane

Upload: clauvane1708

Post on 06-May-2015

96 views

Category:

Technology


0 download

DESCRIPTION

Esta apresentação tem como base o livro de TDD da casa do código.

TRANSCRIPT

Page 1: Test driven development

Test-Driven DevelopmentFrancisco Clauvane

Page 2: Test driven development

SobreEsta apresentacao teve como base o livro de

TDD da casa do codigo, a minha experiencia profissional e as dicas dadas por profissionais mais experientes. Onde o objetivo da mesma nao e ensinar como usar o junit, mas sim, a importancia dos testes, e o que eles podem agregar de positivo em projetos de software.

Page 3: Test driven development

Sumario1. Teste de unidade2. TDD3. Design de classes4. Qualidade do codigo5. Coesao6. Acoplamento7. Mock Objects8. Niveis de teste9. Quando nao usar TDD

Page 4: Test driven development

1-Teste de unidadeOs sistemas sao geralmente grandes e

complexosUm teste de unidade nao se preocupa com o

sistema todo, mas sim com um “pedaco” dele.Geralmente esses pedacos sao classes.Logo, os teste de unidade serao responsaveis

pelas classes.

Page 5: Test driven development

2-TDDFoco no teste e nao na implementacaoCodigo nasce testadoSimplicidadeMelhor reflexao sobre o design de classesSem TDD vamos obter o mesmo resultado?

Feedback dos teste

Page 6: Test driven development

3-Design de classePara muitos TDD e um guia para um bom

design de classesFeedback

“A pratica de TDD nao guia o desenvolvedor para um bom projeto de classes de forma automatica;A experiencia e o conhecimento do desenvolvedor sao fundamentais para criar o software orientado a objeto”

Page 7: Test driven development

4-Qualidade do codigoTestes podem apresentar problemas no

codigoTeste deve ser algo facil e produtivoTodas as boas praticas que o desenvolvedor

aplica no codigo de producao pode ser utilizado no codigo de teste

Page 8: Test driven development

5-CoesaoClasses que fazem muita coisas sao dificeis

de serem mantidasPrincipio da responsabilidade unica

Uma classe coesa e aquela que possui apenas uma unica responsabilidade

Em sistemas orientado a objetos a ideia e sempre buscar classes coesasFeedback

Page 9: Test driven development

6-AcoplamentoDizemos que uma classe esta acoplada a

outra quando existe alguma relacao de dependencia entre elasMudanca nesta classes podem impactar

negativamenteInversao de controle e injecao de

dependenciaRepassando a dependencia para uma abstracaoCenario mais preparado para os impactos que

as possiveis mudancas podem causarClasses altamente coesas e pouco acopladas

sao dificeis de serem projetadas

Page 10: Test driven development

7-Mock ObjectsEm um teste onde existem classes integradas, se o teste

falhar , como saber qual objeto gerou o erro“Objetos duble”

Objetos que simulam o comportamento de outrasSimula objetos que surgem como dependencia durante os

testesMocks “escondem” problemas que so seriam vistos em

producaoClasses que representam entidades, servicos, utilitarios, ou

qualquer coisa que “encoste” na infraestrutura nao deve ser mockada

Classes complexas e trabalhosas devem ser mockadas, por exemplo,classes de infraestrutura

Mockito

Page 11: Test driven development

8-Niveis de testeUnidade

Testa modulos( classes ) de forma independente do restante do sistema

IntegracaoTesta os modulos funcionando de forma conjuntaBotton-upTop-down

SistemaTesta todo o sistema mas se preocupa apenas com aspecto

gerais Aspectos funcionais

Regra de negocionao-funcionais

Expectativa do cliente

Page 12: Test driven development

FimSites e livros recomendados

http://www.guj.com.brhttp://www.CasaDoCodigo.com.brhttp://www.caelum.com.br/onlinehttps://github.com/clauvanehttps://github.com/rponte