Você está na página 1de 10

Minicurso: Test-Driven Development (TDD)

Ivan Sanchez Abril/2007

O que TDD?

Desenvolvimento Orientado a Testes Uma maneira diferente de construir software


Menos anlise UML, mais software funcional Menos documentos, mais especificaes e testes automatizados

Desenvolvimento Sustentvel

Como funciona?

Testes so escritos antes do cdigo Evoluo incremental Ciclo


1. Escreva um teste que falhe 2. Faa o teste passar 3. Refatore

Fluxo do TDD
Incio Refatore Todos os testes passando Novo Teste Resolva um Teste Fim. No consegue imaginar mais testes?

Refatore

Um ou mais testes falhando Resolva um Teste

O que so os testes em TDD?

Especificao

O que o software tem que fazer? Quais so os contextos conhecidos? Como reproduzir um erro? O software tem o comportamento esperado? Quais so as consequncias desta mudana?

Validao

Automatizao

Em resumo

Por que testes antes do cdigo?


Forma de explorar o problema Especificao automatizada Validao automatizada Aprendizado a cada teste executado Segurana para dar o prximo passo Favorece a simplicidade

Por que desenvolver incrementalmente?


Por onde comear?

Classes de negcio

De preferncia que manipulem somente tipos bsicos da linguagem De preferncia que agreguem valor para o sistema Resultados esperados para contextos conhecidos Excees, entradas nulas e vazias, limites, referncia entre objetos, ordenao de resultados etc

Que testes escrever?


Perguntas Frequentes

possvel desenvolver tudo com TDD? TDD substitui documentao UML? Como eu testo <insira qualquer coisa aqui>?

Referncias

Livros

Test-Driven Development by Example, Kent Beck Pragmatic Unit Testing, Andrew Hunt & David Thomas jUnit in Action, Vincent Massol
XProgramming: http://www.xprogramming.com BDD: http://behaviour-driven.org Coding Dojo Floripa: http://dojofloripa.wordpress.com

Sites

Exerccio

Programa para informar quanto tempo se passou desde uma determinada data:

Ex.: Se a data de hoje 19/04/2007:


17/04/2007 -> 2 dias atrs 05/04/2007 -> 2 semanas atrs

Você também pode gostar