Download pptx - Test Driven Development

Transcript
Page 1: Test Driven Development

Test Driven DevelopmentNazareno Andrade

Baseado no material do prof. Hyggo Almeida

Page 2: Test Driven Development

ContextualizaçãoTestar software não é uma atividade divertida!!!

2Test Driven Development (Hyggo Oliveira de Almeida)

Você sabe que é necessário!!!

Diz a todo mundo para fazer!!!!

Mas não faz!!!

Page 3: Test Driven Development

ContextualizaçãoCiclo de desenvolvimento “tradicional”

Testes depois da implementação Problemas??? Não!!?!!

Tudo que implemento, depois testo!!! Em ciclos curtos... Será???

3Test Driven Development (Hyggo Oliveira de Almeida)

Page 4: Test Driven Development

MotivaçãoO que acontece em geral...

4Test Driven Development (Hyggo Oliveira de Almeida)

Implementação Testes

Início Prazo finalResultado: Manutenção cara

Page 5: Test Driven Development

Test Driven Development

Fórmula de Ambler

5Test Driven Development (Hyggo Oliveira de Almeida)

TDD = TFD + Refactoring

Test First Development(Confiança no funcionamento)

Limpeza(Alta qualidade do código)

Page 6: Test Driven Development

Test Driven Development

Técnica segundo a qual você deve primeiro escrever testes e depois escrever código!!!

Testes devem guiar o desenvolvimento do código

Primeiro a intenção... Testes provêem uma especificação de “o que” um pedaço

de código faz Servem como documentação

Refactoring garante a alta qualidade do código6Test Driven Development (Hyggo Oliveira de Almeida)

Page 7: Test Driven Development

Ciclo de desenvolvimento TDD

7Test Driven Development (Hyggo Oliveira de Almeida)

Escreva um teste

Compile

Corrija erros de compilação

Execute testes,veja as falhasEscreva código

Execute testes, veja o sucesso

Refatore o código(e teste)

Page 8: Test Driven Development

Requisito básico para TDD Arcabouço para testes de unidade automatizados

xUNIT (Java, C++, Python, Delphi...)

A filosofia de TDD se alinha a XP De fato, possuem o mesmo pai (Kent Beck) É possível utilizar TDD independentemente

8Test Driven Development (Hyggo Oliveira de Almeida)

Page 9: Test Driven Development

Objetivo: Barra verde

Ferramenta Java já conhecida JUnit Possui plug-in para o Eclipse

Seu trabalho agora é: Escrever testes primeiro... ... escrever código depois... ... manter a barra verde!!! Limpar o código... ... Manter a barra verde!!!

9Test Driven Development (Hyggo Oliveira de Almeida)

Page 10: Test Driven Development

Por que TDD?Disciplina a escrita de software incrementalmente em

pedaços realmente pequenos

Retorno constante do sucesso da implementação (green bar)

Redução no tempo de depuração Tempo de depuração nunca é reutilizado!

10Test Driven Development (Hyggo Oliveira de Almeida)

Page 11: Test Driven Development

Sobre refatoramentoO objetivo é remover código mal-cheiroso

Código duplicado Métodos/classes muito grandes Subclasses muito semelhantes ...

Extrair método, extrair constantes, usar variável explicativa... http://www.refactoring.com/catalog

Page 12: Test Driven Development

Test Driven DevelopmentMito

TDD é para projetos pequenos?!?! Kent Beck reportou em seu livro um projeto de 4

anos, com 40 desenvolvedores, 250 mil linhas de código e 250 mil linhas de teste!

Mais de 4000 teste eram executados em intervalos menores que 20 minutos

Todos os testes eram executados várias vezes ao dia

Resultado: sucesso

12Test Driven Development (Hyggo Oliveira de Almeida)

Page 13: Test Driven Development

Conclusão

TDD é comprovadamente uma estratégia promissora para o seu projeto

É muito mais uma questão de disciplina que de mudança filosófica!

O projeto de SI1 deve ser feito com TDD Se você acha que não vai gostar, primeiro

prove...

13

Page 14: Test Driven Development

BibliografiaKent Beck. Test-Driven Development by Example. Addison Wesley, 2003

David Astels. Test Driven Development: A Practical Guide.Prentice Hall, 2003

Martin Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley. 1999

Scott Ambler’s Web Site (http://www.ambysoft.com/)

14Test Driven Development (Hyggo Oliveira de Almeida)


Recommended