Top Banner
TDD What, Why, How
25

TDD - What, Why, How

Dec 05, 2014

Download

Software

Rafael Une

# TDD - "What, why and how"

# What?
TDD - Test Driven Development
Test-first programming
XP (eXtreme Programming), Agile Methodologies
Mantra: Red, Green, Refactor
- Red: escrita do primeiro teste antes mesmo da lógica existir.
- Green: é o ponto em que a lógica para que o teste previamente criado passe. Esta lógica deve ser desenvolvida da forma mais simples possível eliminando complexidades desnecessárias fazendo com que a evolução do código ocorra de forma segura.
- Refactor: é a melhoria do código. Neste ponto são removidas duplicações, múltiplas responsabilidades e o código fica cada vez mais próximo de sua versão final.

# Why?
Design: objetos concisos e com menos dependências. Fácil de dar manutenção e fácil de evoluir.

Feedback rápido e contínuo: com os "baby-steps" temos um rápido feedback do que estamos implementando, o que nos auxilia a manter o foco no que é realmente necessário e importante; e nos auxiliar a enxergar se estamos cumprindo com o esperado.

Segurança: temos mais confiança de que o código alterado ou a nova funcionalidade implementada não quebra outra existente. E quando isso ocorre identificamos onde isso ocorreu e corrigimos antes de colocarmos o erro em produção. [veja o custo de um defeito]

Raciocínio: mudança na forma de pensar. Nós forçamos nosso raciocínio a níveis elevados pra gerarmos código com um design melhor.

Documentação: testes descritivos descrevem melhor o funcionamento do software do que a documentação tradicional, já que a documentação tradicional geralmente está defasada ao código, ao contrário dessa abordagem onde a documentação é escrita antes do código.

Qualidade: como consequência um número menor de defeitos em produção. Remoção dos "bad-smells".

# How?
Tipos de Teste
Unidade, Integração, Funcional e Sistema

Unit Tests
Classic and Mockist styles

Como começar?
Coding Dojo: um lugar como os dojos de artes marciais, onde podemos praticar e aprender.

Referências
http://vimeo.com/104311361
http://www.infoq.com/br/presentations/tdd-clean-code-dev-saudavel
http://blog.andredias.net/o-custo-de-um-bug/
http://www.prweb.com/releases/2013/1/prweb10298185.htm
http://www.extremeprogramming.org/rules/testfirst.html
https://sites.google.com/site/unclebobconsultingllc/
http://www.infoq.com/br/news/2010/09/paradigma-tdd
http://desenvolvimentoagil.com.br/xp/praticas/tdd/
http://tableless.com.br/tdd-por-que-usar/
http://blog.thiagobelem.net/aprendendo-tdd-ou-desenvolvimento-orientado-a-testes/
http://martinfowler.com/bliki/UnitTest.html
http://www.infoq.com/br/presentations/dnad-mauricio-aniche
http://www.infoq.com/br/presentations/refatorar-codigo
http://martinfowler.com/articles/mocksArentStubs.html
http://blog.caelum.com.br/mais-uma-vez-tdd-nao-e-bala-de-prata/
http://blog.caelum.com.br/tag/tdd/
http://apoie.org/Dojo.html
http://www.colourlovers.com/web/trends/websites/7818/Brooklyn_Beta
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: TDD - What, Why, How

TDD What, Why, How

Page 2: TDD - What, Why, How
Page 3: TDD - What, Why, How
Page 4: TDD - What, Why, How

test first programming

Page 5: TDD - What, Why, How

XP agile methodology

Page 6: TDD - What, Why, How

Mantra

Page 7: TDD - What, Why, How

RED

teste antes mesmo da lógica existir

Page 8: TDD - What, Why, How

GREEN

lógica pra que o teste passe

Page 9: TDD - What, Why, How

REFACTOR

melhoria do código

Page 10: TDD - What, Why, How
Page 11: TDD - What, Why, How

design um

melhor

Page 12: TDD - What, Why, How

feedback rápido e contínuo

Page 13: TDD - What, Why, How

segurança no código criado

sentimos mais

Page 14: TDD - What, Why, How

raciocínio a níveis elevados de abstração

forçamos nosso

Page 15: TDD - What, Why, How

documentação do que é desenvolvido

geramos

Page 16: TDD - What, Why, How

qualidade do que produzimos

aumentamos a

Page 17: TDD - What, Why, How
Page 18: TDD - What, Why, How

tipos de teste

Page 19: TDD - What, Why, How

unidade integração funcional sistema

Page 20: TDD - What, Why, How

unit tests no nosso caso

Page 21: TDD - What, Why, How
Page 22: TDD - What, Why, How

Classic

Mockist

style

style

Page 23: TDD - What, Why, How
Page 24: TDD - What, Why, How
Page 25: TDD - What, Why, How

Muito obrigado !