1 / 14

Test Driven Development

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.

gustav
Download Presentation

Test Driven Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Contextualização • Testar software não é uma atividade divertida!!! Você sabe que é necessário!!! Diz a todo mundo para fazer!!!! Mas não faz!!! Test Driven Development (Hyggo Oliveira de Almeida)

  3. Contextualização • Ciclo de desenvolvimento “tradicional” • Testes depois da implementação • Problemas??? Não!!?!! • Tudo que implemento, depois testo!!! • Em ciclos curtos... • Será??? Test Driven Development (Hyggo Oliveira de Almeida)

  4. Motivação • O que acontece em geral... Implementação Testes Início Prazo final Resultado: Manutenção cara Test Driven Development (Hyggo Oliveira de Almeida)

  5. Test Driven Development • Fórmula de Ambler TDD = TFD + Refactoring Test First Development (Confiança no funcionamento) Limpeza (Alta qualidade do código) Test Driven Development (Hyggo Oliveira de Almeida)

  6. 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ódigo Test Driven Development (Hyggo Oliveira de Almeida)

  7. Ciclo de desenvolvimento TDD Escreva um teste Refatore o código (e teste) Compile Execute testes, veja o sucesso Corrija erros de compilação Escreva código Execute testes,veja as falhas Test Driven Development (Hyggo Oliveira de Almeida)

  8. 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 Test Driven Development (Hyggo Oliveira de Almeida)

  9. 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!!! Test Driven Development (Hyggo Oliveira de Almeida)

  10. 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! Test Driven Development (Hyggo Oliveira de Almeida)

  11. Sobre refatoramento • O 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

  12. 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 Test Driven Development (Hyggo Oliveira de Almeida)

  13. 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...

  14. Bibliografia • Kent Beck. Test-DrivenDevelopmentbyExample. 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/) Test Driven Development (Hyggo Oliveira de Almeida)

More Related