TDD - Pós Graduação em Engenharia de Software Ágil
-
Upload
bruno-andrade -
Category
Technology
-
view
1.621 -
download
0
description
Transcript of TDD - Pós Graduação em Engenharia de Software Ágil
Test Driven Development
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.
Integração
Regressão
Aceitação
Stress / Carga
Funcional / Caixa Preta
Unitários
Criado por Kent Back
Em 2003
XP (Extreme Programming)
Manifesto Ágil
Keep It Simple, Stupid
You Ain’t Gonna Need It
Don´t repeat yourselfDuplicate is Evil
Desenha Implementa Testa
Desenha Testa Implementa Testa
Desenha
Testa
Implementa
Testa
Desenha
Testa
Implementa
Testa
Entenda o
Bug
Teste
Corrija o
Bug
Teste
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
Tente fazer com que os próprios usuários submetam testes
Examine o código e encontre possíveis Bugssemelhantes
Não importa se foi feito essa manhã.
Anh? =/
Teste
Ahh! =)
Teste
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
Entenda
Documente
Refatore
Remova excessos
Padronize
Faça-o seguro e robusto
CUIDADO!
Vá devagar
Esteja pronto para desfazer tudo
Elevação do comprometimentodo time
Planejamento mais rápido
São considerados Scrum e TDD na discussão do que é ou não entregável
SCRUM TDDAgilidade e Transparência Qualidade
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.
Os riscos aumentam
Demora mais na entrega e muito menos na correção
Ou o problema não foi entendido
Ou utiliza um grande inimigo o Ctrl+C, Ctrl+V
É como se não conhecesse uma biblioteca e isso o impedisse de testar
Trata apenas de programação coisa que já estamos acostumados
Sem fundamento
Se o cenário é inédito existe a comunidade que pode ajudar
Testes devem ser escritos antes do código
Não significa abrir mão de uma poderosaferramenta
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.
Bruno Eustáquio
Juliana Villas Boas
Marcelo Nascimento
Thiago Funghi
Thiago Ribeiro
PO - Márcio Sete