TDD - Test Driven Development

50
Test Driven Development

description

Slides da apresentação sobre TDD para a equipe de IW da empresa Inove Informática. * Slides adaptados de uma outra apresentação realizada por Felipe Pimentel (http://slidesha.re/9OWwgk)

Transcript of TDD - Test Driven Development

Page 1: TDD - Test Driven Development

Test Driven Development

Page 2: TDD - Test Driven Development

Cenário atual

O que é TDD...

Por que usar TDD...

Custo benefício

TDD na prática

Page 3: TDD - Test Driven Development

Códigos ruins• Bugs• Difícil manutenção• Produtividade baixa• Desmotivação

Page 4: TDD - Test Driven Development

Ciclo da morte

Page 5: TDD - Test Driven Development

Impacto das mudanças e correções

Page 6: TDD - Test Driven Development

Códigos ruins? #1

Page 7: TDD - Test Driven Development

Códigos ruins? #2

Page 8: TDD - Test Driven Development

Códigos ruins? #3

Page 9: TDD - Test Driven Development

Solução: TDD

Page 10: TDD - Test Driven Development

O que NÃO é TDD?

• TDD != Teste Unitário• Não é um método para TESTAR software• Não é limitado• Não é teste de caixa preta, caixa branca, caixa

cinza ou regressão.

Page 11: TDD - Test Driven Development

TDD = Test Driven Development

(Desenvolvimento Orientado a testes)

Page 12: TDD - Test Driven Development

“Técnica de desenvolvimento cujo processo é formado por pequenas iterações. Onde os testes são codificados primeiro.”

Page 13: TDD - Test Driven Development

WTF?!

Page 14: TDD - Test Driven Development

Programar os testes primeiro +Refatorar

Page 15: TDD - Test Driven Development
Page 16: TDD - Test Driven Development
Page 17: TDD - Test Driven Development

Assegura a Qualidade do Código

Page 18: TDD - Test Driven Development

“Clean code that works”

(Test Driven Development By Example, Kent Beck)

Page 19: TDD - Test Driven Development

“Desenvolvedor que não testa é como um cirurgião que não lava as mãos”

(Robert C. Martin “Uncle Bob”)

Page 20: TDD - Test Driven Development

“Sistema sem teste dá medo!”

(Giovanni Bassi)

Page 21: TDD - Test Driven Development

“Código sem teste, é código legado”

(Working Effectively with Legacy Code, Michael Feathers)

Page 22: TDD - Test Driven Development

Por que não usar?

Page 23: TDD - Test Driven Development

“Estou sem tempo para testar!”

Page 24: TDD - Test Driven Development

“Escrever testes demora muito!”

Page 25: TDD - Test Driven Development

“Esse não é meu trabalho”

Page 26: TDD - Test Driven Development

“Se compilou é porque está funcionando!”

Page 27: TDD - Test Driven Development

“Testar é caro, não testar é mais caro ainda!”

(Giovanni Bassi)

Page 28: TDD - Test Driven Development

Benefícios do TDD

Page 29: TDD - Test Driven Development

“Garante a existência de testes unitários completos e atualizados”

Page 30: TDD - Test Driven Development

“Diminui a quantidade de erros por linha de código ”

Page 31: TDD - Test Driven Development

“Testes unitários são documentação executável”

(Giovanni Bassi)

Page 32: TDD - Test Driven Development

“Direciona projeto a ser mais desacoplado, flexível, modular e extensível.”

Page 33: TDD - Test Driven Development

O cliente

Page 34: TDD - Test Driven Development

O desenvolvedor

Page 35: TDD - Test Driven Development

Práticas e conceitos

Page 36: TDD - Test Driven Development
Page 37: TDD - Test Driven Development

Modularize os Testes

Page 38: TDD - Test Driven Development
Page 39: TDD - Test Driven Development

Baby Steps

Page 40: TDD - Test Driven Development

Resistindo a tentação de sair fazendo

Page 41: TDD - Test Driven Development
Page 42: TDD - Test Driven Development

DRY

Page 43: TDD - Test Driven Development

Princípio da responsabilidade única (SRP)

Page 44: TDD - Test Driven Development

Participe de Coding Dojos

Page 45: TDD - Test Driven Development

TDD é fácil

Page 46: TDD - Test Driven Development

Literaturas

Page 47: TDD - Test Driven Development

Links• http://www.codeplex.com/wikipage?ProjectName=xunit&title

=Comparisons• http://unplugged.giggio.net/• http://www.infoq.com/br/news/2009/03/TDD-Improves-Qual

ity• http://www.infoq.com/br/articles/levison-TDD-adoption-strat

egy• http://danieltamiosso.com/2009/05/06/o-impacto-de-tdd-no-

design/• http://www.diogomafra.com.br/2009/09/introducao-ao-tdd_

24.html• http://www.infoq.com/br/news/2009/11/uncle-bob-tdd-appli

cability• http://www.superexpert.com/• http://blogs.southworks.net/dschenkelman/• http://www.heroisdati.com/

Page 48: TDD - Test Driven Development

[...] E este sou eu!

• twitter: @waldyrfelix• msn: [email protected]• gtalk: [email protected]• skype: waldyrfelix• blog: waldyrfelix.net/blog

Page 49: TDD - Test Driven Development

Perguntas?

Page 50: TDD - Test Driven Development

Ao Dojo! Obrigado!