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

Post on 27-Jun-2015

1.621 views 0 download

description

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.

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