Test Driven Development Nazareno Andrade Baseado no material do prof. Hyggo Almeida

  • View
    105

  • Download
    1

Embed Size (px)

Text of Test Driven Development Nazareno Andrade Baseado no material do prof. Hyggo Almeida

  • Slide 1
  • Test Driven Development Nazareno Andrade Baseado no material do prof. Hyggo Almeida
  • Slide 2
  • Contextualizao Testar software no uma atividade divertida!!! 2 Test Driven Development (Hyggo Oliveira de Almeida) Voc sabe que necessrio!!! Diz a todo mundo para fazer!!!! Mas no faz!!!
  • Slide 3
  • Contextualizao Ciclo de desenvolvimento tradicional Testes depois da implementao Testes depois da implementao Problemas??? No!!?!! Problemas??? No!!?!! Tudo que implemento, depois testo!!! Tudo que implemento, depois testo!!! Em ciclos curtos... Em ciclos curtos... Ser??? Ser??? 3 Test Driven Development (Hyggo Oliveira de Almeida)
  • Slide 4
  • Motivao O que acontece em geral... 4 Test Driven Development (Hyggo Oliveira de Almeida) ImplementaoTestes Incio Prazo final Resultado: Manuteno cara
  • Slide 5
  • Test Driven Development Frmula de Ambler 5 Test Driven Development (Hyggo Oliveira de Almeida) TDD = TFD + Refactoring Test First Development (Confiana no funcionamento) Limpeza (Alta qualidade do cdigo)
  • Slide 6
  • Test Driven Development Tcnica 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 faz Testes provem uma especificao de o que um pedao de cdigo faz Servem como documentao Servem como documentao Refactoring garante a alta qualidade do cdigo 6 Test Driven Development (Hyggo Oliveira de Almeida)
  • Slide 7
  • Ciclo de desenvolvimento TDD 7 Test Driven Development (Hyggo Oliveira de Almeida) Escreva um teste Compile Corrija erros de compilao Execute testes, veja as falhas Escreva cdigo Execute testes, veja o sucesso Refatore o cdigo (e teste)
  • Slide 8
  • Requisito bsico para TDD Arcabouo para testes de unidade automatizados Arcabouo para testes de unidade automatizados xUNIT (Java, C++, Python, Delphi...) xUNIT (Java, C++, Python, Delphi...) A filosofia de TDD se alinha a XP De fato, possuem o mesmo pai (Kent Beck) De fato, possuem o mesmo pai (Kent Beck) possvel utilizar TDD independentemente possvel utilizar TDD independentemente 8 Test Driven Development (Hyggo Oliveira de Almeida)
  • Slide 9
  • Objetivo: Barra verde Ferramenta Java j conhecida JUnit JUnit Possui plug-in para o Eclipse Possui plug-in para o Eclipse Seu trabalho agora : Escrever testes primeiro... Escrever testes primeiro...... escrever cdigo depois...... escrever cdigo depois...... manter a barra verde!!!... manter a barra verde!!! Limpar o cdigo... Limpar o cdigo...... Manter a barra verde!!!... Manter a barra verde!!! 9 Test Driven Development (Hyggo Oliveira de Almeida)
  • Slide 10
  • 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 depurao Tempo de depurao nunca reutilizado! Tempo de depurao nunca reutilizado! 10 Test Driven Development (Hyggo Oliveira de Almeida)
  • Slide 11
  • Sobre refatoramento O objetivo remover cdigo mal-cheiroso Cdigo duplicado Cdigo duplicado Mtodos/classes muito grandes Mtodos/classes muito grandes Subclasses muito semelhantes Subclasses muito semelhantes...... Extrair mtodo, extrair constantes, usar varivel explicativa... http://www.refactoring.com/catalog
  • Slide 12
  • Test Driven Development Mito TDD 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! 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 minutos Mais de 4000 teste eram executados em intervalos menores que 20 minutos Todos os testes eram executados vrias vezes ao dia Todos os testes eram executados vrias vezes ao dia Resultado: sucesso Resultado: sucesso 12 Test Driven Development (Hyggo Oliveira de Almeida)
  • Slide 13
  • Concluso TDD 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 TDD Se voc acha que no vai gostar, primeiro prove... Se voc acha que no vai gostar, primeiro prove... 13
  • Slide 14
  • Bibliografia Kent 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 Amblers Web Site (http://www.ambysoft.com/) 14 Test Driven Development (Hyggo Oliveira de Almeida)