Test Driven Development

  • View
    19

  • Download
    0

Embed Size (px)

DESCRIPTION

Test Driven Development. Nazareno Andrade Baseado no material do prof. Hyggo Almeida. Contextualização. Testar software não é uma atividade divertida!!!. Você sabe que é necessário!!! Diz a todo mundo para fazer!!!! Mas não faz!!!. Contextualização. - PowerPoint PPT Presentation

Text of Test Driven Development

Slide 1

Test Driven DevelopmentNazareno AndradeBaseado no material do prof. Hyggo AlmeidaContextualizaoTestar software no uma atividade divertida!!!2Test Driven Development (Hyggo Oliveira de Almeida)

Voc sabe que necessrio!!!

Diz a todo mundo para fazer!!!!

Mas no faz!!!ContextualizaoCiclo de desenvolvimento tradicionalTestes depois da implementaoProblemas??? No!!?!!Tudo que implemento, depois testo!!!Em ciclos curtos... Ser???3Test Driven Development (Hyggo Oliveira de Almeida)MotivaoO que acontece em geral...4Test Driven Development (Hyggo Oliveira de Almeida)ImplementaoTestesIncioPrazo finalResultado: Manuteno caraTest Driven DevelopmentFrmula de Ambler5Test Driven Development (Hyggo Oliveira de Almeida)TDD = TFD + RefactoringTest First Development(Confiana no funcionamento)Limpeza(Alta qualidade do cdigo)Test Driven DevelopmentTcnica segundo a qual voc deve primeiro escrever testes e depois escrever cdigo!!!

Testes devem guiar o desenvolvimento do cdigo

Primeiro a inteno...Testes provem uma especificao de o que um pedao de cdigo fazServem como documentao

Refactoring garante a alta qualidade do cdigo6Test Driven Development (Hyggo Oliveira de Almeida)Ciclo de desenvolvimento TDD7Test Driven Development (Hyggo Oliveira de Almeida)Escreva um testeCompileCorrija erros de compilaoExecute testes,veja as falhasEscreva cdigoExecute testes, veja o sucessoRefatore o cdigo(e teste)Requisito bsico para TDDArcabouo para testes de unidade automatizadosxUNIT (Java, C++, Python, Delphi...)

A filosofia de TDD se alinha a XPDe fato, possuem o mesmo pai (Kent Beck) possvel utilizar TDD independentemente8Test Driven Development (Hyggo Oliveira de Almeida)Objetivo: Barra verdeFerramenta Java j conhecidaJUnitPossui plug-in para o Eclipse

Seu trabalho agora :Escrever testes primeiro...... escrever cdigo depois...... manter a barra verde!!!Limpar o cdigo...... Manter a barra verde!!!9Test Driven Development (Hyggo Oliveira de Almeida)

Por que TDD?Disciplina a escrita de software incrementalmente em pedaos realmente pequenos

Retorno constante do sucesso da implementao (green bar)

Reduo no tempo de depuraoTempo de depurao nunca reutilizado!10Test Driven Development (Hyggo Oliveira de Almeida)Sobre refatoramentoO objetivo remover cdigo mal-cheirosoCdigo duplicadoMtodos/classes muito grandesSubclasses muito semelhantes...

Extrair mtodo, extrair constantes, usar varivel explicativa... http://www.refactoring.com/catalogTest Driven DevelopmentMitoTDD para projetos pequenos?!?!Kent Beck reportou em seu livro um projeto de 4 anos, com 40 desenvolvedores, 250 mil linhas de cdigo e 250 mil linhas de teste!Mais de 4000 teste eram executados em intervalos menores que 20 minutosTodos os testes eram executados vrias vezes ao diaResultado: sucesso12Test Driven Development (Hyggo Oliveira de Almeida)ConclusoTDD comprovadamente uma estratgia promissora para o seu projeto muito mais uma questo de disciplina que de mudana filosfica!

O projeto de SI1 deve ser feito com TDDSe voc acha que no vai gostar, primeiro prove...13

BibliografiaKent Beck. Test-Driven Development by Example. Addison Wesley, 2003David Astels. Test Driven Development: A Practical Guide.Prentice Hall, 2003Martin Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley. 1999Scott Amblers Web Site (http://www.ambysoft.com/)

14Test Driven Development (Hyggo Oliveira de Almeida)