TDD - Test Driven Development

Post on 06-May-2015

2.113 views 10 download

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

Test Driven Development

Cenário atual

O que é TDD...

Por que usar TDD...

Custo benefício

TDD na prática

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

Ciclo da morte

Impacto das mudanças e correções

Códigos ruins? #1

Códigos ruins? #2

Códigos ruins? #3

Solução: TDD

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.

TDD = Test Driven Development

(Desenvolvimento Orientado a testes)

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

WTF?!

Programar os testes primeiro +Refatorar

Assegura a Qualidade do Código

“Clean code that works”

(Test Driven Development By Example, Kent Beck)

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

(Robert C. Martin “Uncle Bob”)

“Sistema sem teste dá medo!”

(Giovanni Bassi)

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

(Working Effectively with Legacy Code, Michael Feathers)

Por que não usar?

“Estou sem tempo para testar!”

“Escrever testes demora muito!”

“Esse não é meu trabalho”

“Se compilou é porque está funcionando!”

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

(Giovanni Bassi)

Benefícios do TDD

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

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

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

(Giovanni Bassi)

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

O cliente

O desenvolvedor

Práticas e conceitos

Modularize os Testes

Baby Steps

Resistindo a tentação de sair fazendo

DRY

Princípio da responsabilidade única (SRP)

Participe de Coding Dojos

TDD é fácil

Literaturas

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/

[...] E este sou eu!

• twitter: @waldyrfelix• msn: waldyrpe@hotmail.com• gtalk: waldyrfelix@gmail.com• skype: waldyrfelix• blog: waldyrfelix.net/blog

Perguntas?

Ao Dojo! Obrigado!