Top Banner
Test Driven Development
84

TDD - Pós Graduação em Engenharia de Software Ágil

Jun 27, 2015

Download

Technology

Bruno Andrade

Apresentação sobre TDD para a disciplna de metodologias ágeis de desenvolvimento de software do curso de pósgraduação em engenharia de software centrada em métodos ágeis.
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 - Pós Graduação em Engenharia de Software Ágil

Test Driven Development

Page 2: TDD - Pós Graduação em Engenharia de Software Ágil

Teste automatizado é umadocumentação executável.

Testes automáticos geram Feed Back rápido e fácil (1 click).

Teste de software é qualidade de software.

Teste de caixa preta (Funcional), é cansativo para o ser humano.

Page 3: TDD - Pós Graduação em Engenharia de Software Ágil
Page 4: TDD - Pós Graduação em Engenharia de Software Ágil

Integração

Regressão

Aceitação

Stress / Carga

Funcional / Caixa Preta

Unitários

Page 5: TDD - Pós Graduação em Engenharia de Software Ágil
Page 6: TDD - Pós Graduação em Engenharia de Software Ágil
Page 7: TDD - Pós Graduação em Engenharia de Software Ágil
Page 8: TDD - Pós Graduação em Engenharia de Software Ágil
Page 9: TDD - Pós Graduação em Engenharia de Software Ágil
Page 10: TDD - Pós Graduação em Engenharia de Software Ágil

Criado por Kent Back

Em 2003

XP (Extreme Programming)

Manifesto Ágil

Page 11: TDD - Pós Graduação em Engenharia de Software Ágil
Page 12: TDD - Pós Graduação em Engenharia de Software Ágil

Keep It Simple, Stupid

Page 13: TDD - Pós Graduação em Engenharia de Software Ágil

You Ain’t Gonna Need It

Page 14: TDD - Pós Graduação em Engenharia de Software Ágil
Page 15: TDD - Pós Graduação em Engenharia de Software Ágil

Don´t repeat yourselfDuplicate is Evil

Page 16: TDD - Pós Graduação em Engenharia de Software Ágil
Page 17: TDD - Pós Graduação em Engenharia de Software Ágil
Page 18: TDD - Pós Graduação em Engenharia de Software Ágil
Page 19: TDD - Pós Graduação em Engenharia de Software Ágil

Desenha Implementa Testa

Page 20: TDD - Pós Graduação em Engenharia de Software Ágil

Desenha Testa Implementa Testa

Page 21: TDD - Pós Graduação em Engenharia de Software Ágil

Desenha

Testa

Implementa

Testa

Page 22: TDD - Pós Graduação em Engenharia de Software Ágil

Desenha

Testa

Implementa

Testa

Page 23: TDD - Pós Graduação em Engenharia de Software Ágil
Page 24: TDD - Pós Graduação em Engenharia de Software Ágil
Page 25: TDD - Pós Graduação em Engenharia de Software Ágil
Page 26: TDD - Pós Graduação em Engenharia de Software Ágil

Entenda o

Bug

Teste

Corrija o

Bug

Teste

Page 27: TDD - Pós Graduação em Engenharia de Software Ágil

Encontre o foco do problema que gera o Bug

Transforme-o em um teste

Teste. Ele deve falhar

Corrija o bug

Teste novamente. Ele deve passar

Page 28: TDD - Pós Graduação em Engenharia de Software Ágil

Tente fazer com que os próprios usuários submetam testes

Examine o código e encontre possíveis Bugssemelhantes

Page 29: TDD - Pós Graduação em Engenharia de Software Ágil
Page 30: TDD - Pós Graduação em Engenharia de Software Ágil
Page 31: TDD - Pós Graduação em Engenharia de Software Ágil
Page 32: TDD - Pós Graduação em Engenharia de Software Ágil

Não importa se foi feito essa manhã.

Page 33: TDD - Pós Graduação em Engenharia de Software Ágil
Page 34: TDD - Pós Graduação em Engenharia de Software Ágil
Page 35: TDD - Pós Graduação em Engenharia de Software Ágil
Page 36: TDD - Pós Graduação em Engenharia de Software Ágil
Page 37: TDD - Pós Graduação em Engenharia de Software Ágil

Anh? =/

Teste

Ahh! =)

Teste

Page 38: TDD - Pós Graduação em Engenharia de Software Ágil

Analise o código

Construa o teste e veja se você entendeu o problema

Teste

Adapte o teste (Iterativamente)

Teste

Siga para a próxima parte

Page 39: TDD - Pós Graduação em Engenharia de Software Ágil

Entenda

Documente

Refatore

Remova excessos

Padronize

Faça-o seguro e robusto

Page 40: TDD - Pós Graduação em Engenharia de Software Ágil

CUIDADO!

Vá devagar

Esteja pronto para desfazer tudo

Page 41: TDD - Pós Graduação em Engenharia de Software Ágil
Page 42: TDD - Pós Graduação em Engenharia de Software Ágil
Page 43: TDD - Pós Graduação em Engenharia de Software Ágil
Page 44: TDD - Pós Graduação em Engenharia de Software Ágil
Page 45: TDD - Pós Graduação em Engenharia de Software Ágil
Page 46: TDD - Pós Graduação em Engenharia de Software Ágil
Page 47: TDD - Pós Graduação em Engenharia de Software Ágil
Page 48: TDD - Pós Graduação em Engenharia de Software Ágil
Page 49: TDD - Pós Graduação em Engenharia de Software Ágil
Page 50: TDD - Pós Graduação em Engenharia de Software Ágil
Page 51: TDD - Pós Graduação em Engenharia de Software Ágil
Page 52: TDD - Pós Graduação em Engenharia de Software Ágil
Page 53: TDD - Pós Graduação em Engenharia de Software Ágil
Page 54: TDD - Pós Graduação em Engenharia de Software Ágil

Elevação do comprometimentodo time

Planejamento mais rápido

Page 55: TDD - Pós Graduação em Engenharia de Software Ágil

São considerados Scrum e TDD na discussão do que é ou não entregável

Page 56: TDD - Pós Graduação em Engenharia de Software Ágil
Page 57: TDD - Pós Graduação em Engenharia de Software Ágil
Page 58: TDD - Pós Graduação em Engenharia de Software Ágil
Page 59: TDD - Pós Graduação em Engenharia de Software Ágil
Page 60: TDD - Pós Graduação em Engenharia de Software Ágil

SCRUM TDDAgilidade e Transparência Qualidade

Page 61: TDD - Pós Graduação em Engenharia de Software Ágil

MITOS REALIDADES

TDD pode gerar um conjunto de

testes 100% aplicáveis paraqualquer aplicação

Componentes de terceiros às

vezes deixam de ter testes e até o

código-fonte.

Você só precisa fazer teste de unidade

É preciso aplicar outras técnicas

de testes, mesmo para sistemassimples.

TDD é suficiente para testar tudoTDD contemplam apenas o teste

entre o desenvolvedor e a

unidade.

TDD não é escalável O TDD encoraja o refactoring, o que torna o código escalável.

Page 62: TDD - Pós Graduação em Engenharia de Software Ágil
Page 63: TDD - Pós Graduação em Engenharia de Software Ágil

Os riscos aumentam

Demora mais na entrega e muito menos na correção

Page 64: TDD - Pós Graduação em Engenharia de Software Ágil

Ou o problema não foi entendido

Ou utiliza um grande inimigo o Ctrl+C, Ctrl+V

Page 65: TDD - Pós Graduação em Engenharia de Software Ágil

É como se não conhecesse uma biblioteca e isso o impedisse de testar

Trata apenas de programação coisa que já estamos acostumados

Page 66: TDD - Pós Graduação em Engenharia de Software Ágil

Sem fundamento

Se o cenário é inédito existe a comunidade que pode ajudar

Page 67: TDD - Pós Graduação em Engenharia de Software Ágil

Testes devem ser escritos antes do código

Não significa abrir mão de uma poderosaferramenta

Page 68: TDD - Pós Graduação em Engenharia de Software Ágil
Page 69: TDD - Pós Graduação em Engenharia de Software Ágil
Page 70: TDD - Pós Graduação em Engenharia de Software Ágil
Page 71: TDD - Pós Graduação em Engenharia de Software Ágil
Page 72: TDD - Pós Graduação em Engenharia de Software Ágil
Page 73: TDD - Pós Graduação em Engenharia de Software Ágil
Page 74: TDD - Pós Graduação em Engenharia de Software Ágil
Page 75: TDD - Pós Graduação em Engenharia de Software Ágil
Page 76: TDD - Pós Graduação em Engenharia de Software Ágil
Page 77: TDD - Pós Graduação em Engenharia de Software Ágil
Page 78: TDD - Pós Graduação em Engenharia de Software Ágil
Page 79: TDD - Pós Graduação em Engenharia de Software Ágil
Page 80: TDD - Pós Graduação em Engenharia de Software Ágil
Page 81: TDD - Pós Graduação em Engenharia de Software Ágil
Page 82: TDD - Pós Graduação em Engenharia de Software Ágil

Escreva um teste que não irá funcionar.

Faça com que esse teste funcione com a implementação mais óbvia e rápida possível.

Repita esse ciclo iterativamente refatorando o código eliminando o desnecessário.

Page 83: TDD - Pós Graduação em Engenharia de Software Ágil
Page 84: TDD - Pós Graduação em Engenharia de Software Ágil

Bruno Eustáquio

Juliana Villas Boas

Marcelo Nascimento

Thiago Funghi

Thiago Ribeiro

PO - Márcio Sete