26 de julho de 2010, por Denis Ferrari em Design

Olá Pessoal! Para auxiliar quem está começando ou quer começar a utilizar o TDD, estou disponibilizando um vídeo com uma demostração da ténica. O objetivo do vídeo é apresentar a utilização do TDD e fornecer algumas dicas sobre como se sair bem na utilização da técnica. Espero que gostem do vídeo:

Dicas gerais sobre TDD

Sempre inicie com uma lista de testes : No TDD, não saímos codificando. Antes de iniciar a construção de qualquer coisa, elabore uma lista de testes inicial. Caso seja necessário, você poderá incluir mais itens na sua lista de testes mesmo depois de já ter iniciado a codificação;

Sempre inicie pelo teste mais simples : Após elaborar sua lista de testes, inicie a codificação pelo teste mais simples da sua lista. Desenvolvendo dessa forma, você não só ganha ritmo, mas também vai aprendendo de pouco a pouco sobre o problema que está resolvendo.

Comece a construção do seu código pela construção do seu teste : Desenvolvendo o teste primeiro (como preza o TDD) temos a oportunidade de tomar decisões de design das nossas classes antes mesmo de construí-las. Iniciar a construção do código pelo teste possibilita que você veja o seu código pela perspectiva de quem o utilizará, ou seja, você terá um feedback de utilização antes mesmo de codificar sua classe.

Comece o teste pela assertiva : Iniciar o teste pela assertiva é definir o objetivo do teste. Escrever a assertiva é definir onde você quer chegar no teste, qual objetivo quer alcançar, se isso não estiver bem definido não adianta escrever o teste.

Simule até construir realmente : Sempre que possível, construa implementações falsas. Deixe para construir as implementações reais só quando for realmente necessário.

Busque o verde o mais rápido possível : Quando o teste estiver vermelho, procure fazê-lo passar o mais rápido possível, mesmo que a implementação feita não seja a mais agradável de ver. Quando o teste estiver verde, substitua a implementação feita por uma implementação mais elegante, afinal, a fase de refatoração serve para isso. :)

Construa somente o necessário para o teste passar : Não construa nada além do que o seus testes pedirem. Se desejar realizar alguma codificação, escreve primeiro um teste e depois o código. TDD também exige muita disciplina.

Passos de bebê : Procure sempre dar passos pequenos durante a construção dos seus testes, evite assumir um teste muito difícil ou grande logo de cara, deixe sempre os testes mais complicados para o final.

Links

Faça download do projeto construído no Github.

Veja outros links sobre TDD no delicious.

Abraços!


Comentários:
42 Comentários postados em "TDD para iniciantes – Para quem quer começar e não sabe como"
Edmilson on julho 26th, 2010 at 12:08 #

Denis, mas um post Excelente! keep going!!

Esta questão do TDD uma das questões que mais pega para que esta iniciando são justamente estes conceitos

Parabéns!

[]´s

Edmilson


Robson on julho 26th, 2010 at 12:38 #

Dennis muito boa a dica….parabéns…achei pbem interessante … fico no aguado de outras !


Mark S. Gonçalves on julho 26th, 2010 at 14:53 #

Denis, parabéns, desde antes do email que te passei tenho procurado bastante sobre TDD, e foi um dos mais explicativos que obtive até agora.

Realmente para quem está iniciando o TDD é bem complicado de se implementar, mas com boas dicas como esta fica cada vez mais fácil.

Abraços e fico no aguardo de mais!!


Ramon Silva on julho 26th, 2010 at 16:00 #

Muito Bom! Fiz um tweet desse post pelo twitter da minha empresa. @startit

Abração!


Julierme on julho 26th, 2010 at 16:16 #

Um belo ponta pé.

Sempre procuro por material sobre TDD, e este post passa de maneira clara o mais importante no TDD que são os seus conceito.

Parabéns pelo post. Muito bom o material.


Chan on julho 26th, 2010 at 16:30 #

Bem legal, parabéns pela iniciativa…


Antonio Jr on julho 26th, 2010 at 20:45 #

Denis,

Muito bacana a iniciativa, screencasts, para mim, são a melhor maneira de aprender coisas novas.

Valeu.


Tiago Costa on julho 28th, 2010 at 0:44 #

Denis,

Parabéns pelo post, muito bom ajuda a esclarecer sobre TDD. E confirma uma idéia que eu já desconfiava, o fato de implementar testes não significa que está fazendo TDD.

[]s


Atila Raphael on julho 28th, 2010 at 10:52 #

Parabéns pelo post, muito esclarecedor.

Quando eu ouvi falar a primeira vez sobre TDD, achava que era uma furada, mas agora percebo a importância deste tipo de implementação. Com certeza vou usar.

Abraços.


Andre Baltieri on julho 28th, 2010 at 11:21 #

Mais uma vez de parabéns man!
Ajudou e ajudará muito este v’ídeo.

Abração!


Cadu on julho 28th, 2010 at 12:32 #

Cara parabéns!! assisti o screencast e foi bem legal bem explicativo!! continue assim abração!!!!!!!!!


Diogo Miranda on julho 29th, 2010 at 11:34 #

Cara,

Ficou muito legal mesmo. Ainda estou engatinhando com TDD e tudo quanto apresentação é sempre bem vindo, mesmo que não esteja com boas práticas, que no caso não foi o objetivo do vídeo. No entanto, me ajudou muito a entender com maior clareza sobre TDD.

Espero mais vídeos sobre o assunto. Dica: Os próximos gostaria de ver exemplos sobre testes em módulos de cadastros.

Parabéns!


Heitor Andrade on julho 29th, 2010 at 12:24 #

Muitooooo Bom!



Júnior Oliveira on agosto 3rd, 2010 at 11:40 #

Muito bom o video realmente me ajudou muito não tinha ideia do que era TDD e agora eu sei como começar parabens mesmo pelo video abraço e sucesso.


Bruno Pedroso on agosto 5th, 2010 at 22:33 #

Ótima iniciativa, parabéns! :-)


Bruno Luz on agosto 5th, 2010 at 22:52 #

Cara, parabéns. Valeu muito a pena.

Estou começando e esse screencast foi de grande valor pra visualizar alguns conceitos que tanto se ouve falar: baby steps, comece pelo teste, etc…

Só uma pergunta: Porque não usar if’s ternários no mundo real?!


Denis Ferrari on agosto 5th, 2010 at 23:20 #

Oi Bruno,

Em algumas situações operadores ternários não são tão legíveis, e acabam dificultando a leitura por parte dos programadores menos experientes.

Valeu pelo feedback!


Cantinho do Agile on agosto 6th, 2010 at 19:11 #

Ótima iniciativa. Parabéns.


TDD – Primeiras impressões « Bruno Luz on agosto 16th, 2010 at 13:09 #

[...] Post do Denis Ferrari sobre TDD para iniciantes foi muito bom para mim, que sempre escutei, mas vi pouca implementação de código. Nesse post ele [...]


Anderson on agosto 17th, 2010 at 1:16 #

Parabéns pelo excelente artigo!
Muito bem explicado!

Continue escrevendo cada vez mais sobre esse temas muito úteis!

Abraço!


Gustavo Melo on agosto 20th, 2010 at 16:37 #

Somou e muito ! :)
Show de bola.


Renan Volkers on agosto 20th, 2010 at 16:44 #

Muito Bom,
o video traz uma visão melhor de uma TDD.

Parabéns


Design Patterns em Games » Hrosko's Blog on agosto 27th, 2010 at 10:13 #

[...] projeto. Somente com um código garantido e testado, é que deveriamos pensar em otimizar. “Vermelho, Verde, Amarelo“, certo? Pensando nisso, pensei em tentar comparar os efeitos de design patterns, comuns em [...]


Erick Fonseca on agosto 27th, 2010 at 16:35 #

Ótimo trabalho, parabéns.
bem gravado e bem escrito.
parabéns novamente!


Amanda on agosto 30th, 2010 at 18:25 #

Muito boa a sua iniciativa Denis!
Realmente hoje nós ouvimos falar muito sobre o conceito TDD, mas não encontramos tão facilmente exemplos práticos.
Atualmente estou desenvolvendo um projeto meu mesmo e senti uma certa dificuldade em executar os passos pregados pelo TDD, devido à velha mania de querer escrever logo um código que “esteja preparado para tudo” e na verdade nós precisamos do essencial que funcione.
Obrigada, vc me incentivou porque eu já usei testes unitários e conheço apenas o conceito de metodologias ágeis, mas mesmo assim confesso que tive dificuldade ao executar os “passos de bebê”.
Parabéns, seu vídeo está muito bem explicado e claro.
Vou fazer uns exemplos do link que vc passou.
Valeu msm!


[...] This post was mentioned on Twitter by Marcelo Tozzi, Denis Ferrari. Denis Ferrari said: O vídeo sobre #tdd continua recebendo bons feedbacks. Valeu galera! http://bit.ly/9ZMdzA #agile #xp [...]


Bruno F. Paes de Lima | TDD para iniciantes on setembro 24th, 2010 at 10:15 #

[...] http://www.heroisdati.com/tdd-para-iniciantes-para-quem-quer-comecar-e-nao-sabe-como/ Tags: Os comentários estão fechados Powered by BlogEngine.NET 1.3.0.0 | WP Theme & Icons by N.Design Studio | 3 column by R.M. van Meeuwen [...]


rodrigo on outubro 2nd, 2010 at 10:43 #

Muito bom!

Bastante esclarecedor!

Já existem outros screencasts na lista? :)


Denis Ferrari on outubro 2nd, 2010 at 10:59 #

Oi Rodrigo,

Você pode ver todos os screenasts no endereço: http://www.heroisdati.com/tags/screencasts/

O próximo vídeo vai sair em breve, assim que eu terminar algumas pendências.

Abraços!


[...] TDD para iniciantes – Para quem quer começar e não sabe como (vídeo): http://www.heroisdati.com/tdd-para-iniciantes-para-quem-quer-comecar-e-nao-sabe-como/ [...]


Fabio on outubro 21st, 2010 at 21:47 #

Muito legal o vídeo Denis! Deu parar ter uma boa noção do que realmente é o TDD.

Só me responde uma coisa: pq não usar operadores ternários no mundo real? :)


Denis Ferrari on outubro 22nd, 2010 at 2:11 #

Só uma recomendação. Alguns recursos, mesmo sendo bacanas, acabam “dificultando” a leitura do código por parte dos programadores menos experientes. Sei que isso não é um determinante para algumas decisões, mas com alguns cuidados na escrita deixamos o código mais acessível. Ex.: Linguagem popular X Linguagem culta. Ambas são formas de comunicação, mas a popular é compreendida por uma gama maior de pessoas.

Abraços!


Flávio on janeiro 18th, 2011 at 12:55 #

Muito bom o artigo. Ajudou muito. Parabens.


Felipe on abril 19th, 2011 at 2:35 #

show de bola Denis parabéns ficou muito bom…. abraço


Tiago Davi on abril 20th, 2011 at 15:08 #

òtima iniciativa, obrigado.


Robson on junho 13th, 2011 at 10:14 #

Parabéns pelo screencast, ótimo conteúdo e com certeza ajuda muito a comunidade.
Gostaria de saber se você tem alguma dica de como aplicar testes unitários com operações de banco de dados (INSERT, UPDATE, DELETE)

Abs


Denis Ferrari on junho 13th, 2011 at 22:22 #

Oi Robson,

Geralmente, deixo os testes de banco para os testes de integração. Como uso ORM, não faz sentido testar essas operações separadamente.

Abraços!


[...] de conhecer: HTML, Web Standards, CSS, Tableless, Java Script, Java Script não-obstrutivo, C#, TDD, Web Forms ou MVC, EF ou NHibernate e POO dentre outras coisas. Não há como obter todo esse [...]


Lucas Barrios on agosto 13th, 2011 at 21:32 #

Denis, ótimo screencast… não conhecia TDD, estou começando a usar e estou curtindo pra caramba.

Aliás quero te parabenizar pelo blog, de excelente conteúdo. Estou acompanhando direto!

Abraço!


Victor on outubro 19th, 2011 at 0:13 #

Caraca Denis!! Muito bom o seu screencast!! Esclarecedor e SIMPLESmente perfeito! Muito Obrigado.


Marcus Vinícius Faria on novembro 9th, 2011 at 1:30 #

Parabéns e muito obrigado, Denis!
Espero que continue alimentando seu blog com conteudos com vídeos e textos de altissima qualidade como é de costume aqui. Seu trabalho ajuda bastante a comunidade.

Abs


Deixe um comentário

Nome: 
Email: 
URL: 
Comentário: