tdd: técnicas, benefícios e limitação

26
Desenvolvimento Orientado a Testes Benefícios, Técnicas e Limitações

Upload: icaro-camelo

Post on 11-Jun-2015

967 views

Category:

Education


2 download

TRANSCRIPT

Page 1: TDD: Técnicas, Benefícios e Limitação

Desenvolvimento Orientado a Testes

Benefícios, Técnicas e Limitações

Page 2: TDD: Técnicas, Benefícios e Limitação

quem sou eu?

Analista de Sistemas

@icarocamelo http://icarocamelo.wordpress.com

Page 3: TDD: Técnicas, Benefícios e Limitação

roteiro

Por que testar?O que é TDD?TécnicasRefactoringHands On!Limitações

Page 4: TDD: Técnicas, Benefícios e Limitação

por que testar?!

Page 5: TDD: Técnicas, Benefícios e Limitação

por que testar?!

•Sucesso/Fracasso do projeto•Perder Clientes•Alto Acoplamento•Escalabilidade ruim•Prejuízo financeiro

Page 6: TDD: Técnicas, Benefícios e Limitação

o que é TDD?

“Teste de unidade é toda aplicação de teste nas assinaturas de

entradas e saídas de um sistema, consiste em validar dados válidos e

inválidos via I/O (entrada/saída)”.

Page 7: TDD: Técnicas, Benefícios e Limitação

bons testes?!

•Isolado•Cobrir 100% da implementação•Executado por terceiro

Page 8: TDD: Técnicas, Benefícios e Limitação

desculpas comuns...

“(...) Vai demorar muito mais ” (...)

“(...) A funcionalidade é muito fácil” (...)

“(...)Não sei como testar ” (...)

“(...) Melhor deixar os testes com testadores ” (...)

Page 9: TDD: Técnicas, Benefícios e Limitação

o que é TDD?

“Extreme Programming is

successful because it stresses customer

satisfaction”.

Page 10: TDD: Técnicas, Benefícios e Limitação

o que é TDD?

Kent Beck

Page 11: TDD: Técnicas, Benefícios e Limitação

o que é TDD?

1. Adicione um teste que falhe

2. Faça o teste passar

3. Refatore o código

Page 12: TDD: Técnicas, Benefícios e Limitação

o que é TDD?

Page 13: TDD: Técnicas, Benefícios e Limitação

refactoring?!

Martin Fowler

Page 14: TDD: Técnicas, Benefícios e Limitação

refactoring?!

•Design do software•Fácil compreensão•Escrever código rapidamente•Encontrar bugs

Page 15: TDD: Técnicas, Benefícios e Limitação

refactoring?!

“Não é preciso ler todo o código para identificar um

código ruim”.

Page 16: TDD: Técnicas, Benefícios e Limitação

refactoring?!

Principle KISSDRY – Don´t Repeat Yourself

You ain´t gonna need it

Interface Segregation

Principle

Dependency InversionPrinciple

Page 17: TDD: Técnicas, Benefícios e Limitação

técnicas!

Baby Steps

MocksFake it!

Page 18: TDD: Técnicas, Benefícios e Limitação

técnicas: Babies steps!

Codificar teste unitárioTestar um comportamento por vezRefatorar

Page 19: TDD: Técnicas, Benefícios e Limitação

técnicas: Fake it!

Utilizar constantes

Refatorar

Confiança ao refatorar

Aspecto psicológico

ALERTA: Mais testes são

necessários

Page 20: TDD: Técnicas, Benefícios e Limitação

técnicas: Mock!

Versão falsa do objetoBanco de dados

Page 21: TDD: Técnicas, Benefícios e Limitação

o que é TDD?

“Todo código é culpado até que prove

ser inocente”.

Page 22: TDD: Técnicas, Benefícios e Limitação

Hands On!

Page 23: TDD: Técnicas, Benefícios e Limitação

limitações!

Page 24: TDD: Técnicas, Benefícios e Limitação

limitações!

Time não acredita na ideia

Tempo curto para o aprendizado

Psicológico do desenvolvedor

Não é possível automatizar testes

Page 25: TDD: Técnicas, Benefícios e Limitação

Outros Testes?!

Testes de IntegraçãoTestes SistêmicosTestes de Aceitação

Page 26: TDD: Técnicas, Benefícios e Limitação

dúvidas?!