31
Test Driven Development

TDD - Desenvolvimento Dirigido a Testes

Embed Size (px)

DESCRIPTION

Este Slide explica o que é e como usar TDD em um processo de desenvolvimento de software.

Citation preview

Page 1: TDD - Desenvolvimento Dirigido a Testes

Test DrivenDevelopment

Page 2: TDD - Desenvolvimento Dirigido a Testes

Códigos ruins

• Bugs

• Difícil manutenção

• Produtividade baixa

Page 3: TDD - Desenvolvimento Dirigido a Testes

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 4: TDD - Desenvolvimento Dirigido a Testes

TDD = Test Driven Development

(Desenvolvimento Orientado a testes)

Page 5: TDD - Desenvolvimento Dirigido a Testes

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

Page 6: TDD - Desenvolvimento Dirigido a Testes
Page 7: TDD - Desenvolvimento Dirigido a Testes

Programar os testes primeiro+

Refatorar

Page 8: TDD - Desenvolvimento Dirigido a Testes
Page 9: TDD - Desenvolvimento Dirigido a Testes
Page 10: TDD - Desenvolvimento Dirigido a Testes

Assegura a Qualidade do Código

Page 11: TDD - Desenvolvimento Dirigido a Testes
Page 12: TDD - Desenvolvimento Dirigido a Testes
Page 13: TDD - Desenvolvimento Dirigido a Testes

“Sistema sem teste dá medo!”

Page 14: TDD - Desenvolvimento Dirigido a Testes

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

(Working Effectively with Legacy Code, Michael Feathers)

Page 15: TDD - Desenvolvimento Dirigido a Testes

Por que não usar?

Page 16: TDD - Desenvolvimento Dirigido a Testes

“Estou sem tempo para testar!”

Page 17: TDD - Desenvolvimento Dirigido a Testes

“Escrever testes demora muito!”

Page 18: TDD - Desenvolvimento Dirigido a Testes

“Esse não é meu trabalho”

Page 19: TDD - Desenvolvimento Dirigido a Testes

“Se compilou é porque está funcionando, eXtreme Go Horse!”

Page 20: TDD - Desenvolvimento Dirigido a Testes

Benefícios do TDD

Page 21: TDD - Desenvolvimento Dirigido a Testes

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

Page 22: TDD - Desenvolvimento Dirigido a Testes

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

Page 23: TDD - Desenvolvimento Dirigido a Testes

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

extensível.”

Page 24: TDD - Desenvolvimento Dirigido a Testes

O cliente

Page 25: TDD - Desenvolvimento Dirigido a Testes

O desenvolvedor

Page 26: TDD - Desenvolvimento Dirigido a Testes

Práticas e conceitos

Page 27: TDD - Desenvolvimento Dirigido a Testes
Page 28: TDD - Desenvolvimento Dirigido a Testes

Modularize os Testes

Page 29: TDD - Desenvolvimento Dirigido a Testes
Page 30: TDD - Desenvolvimento Dirigido a Testes
Page 31: TDD - Desenvolvimento Dirigido a Testes

Links

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

• http://unplugged.giggio.net/

• http://www.infoq.com/br/news/2009/03/TDD-Improves-Quality

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

• 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-applicability

• http://www.superexpert.com/

• http://blogs.southworks.net/dschenkelman/

• http://www.heroisdati.com/