A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Test Driven Development Nazareno Andrade Baseado no material do prof. Hyggo Almeida."— Transcrição da apresentação:

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

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

3 Contextualização Ciclo de desenvolvimento tradicional Testes depois da implementação Testes depois da implementação Problemas??? Não!!?!! Problemas??? Não!!?!! 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)

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

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

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 Testes provêem uma especificação de o que um pedaço de código faz Servem como documentação Servem como documentação Refactoring garante a alta qualidade do código 6 Test Driven Development (Hyggo Oliveira de Almeida)

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

8 Requisito básico para TDD Arcabouço para testes de unidade automatizados Arcabouço 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) É possível utilizar TDD independentemente É possível utilizar TDD independentemente 8 Test Driven Development (Hyggo Oliveira de Almeida)

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 código depois...... escrever código depois...... manter a barra verde!!!... manter a barra verde!!! Limpar o código... Limpar o código...... Manter a barra verde!!!... Manter a barra verde!!! 9 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! Tempo de depuração nunca é reutilizado! 10 Test Driven Development (Hyggo Oliveira de Almeida)

11 Sobre refatoramento O objetivo é remover código mal-cheiroso Código duplicado Código duplicado Métodos/classes muito grandes Métodos/classes muito grandes Subclasses muito semelhantes Subclasses muito semelhantes...... Extrair método, extrair constantes, usar variável explicativa... http://www.refactoring.com/catalog

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 código e 250 mil linhas de teste! 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 Mais de 4000 teste eram executados em intervalos menores que 20 minutos Todos os testes eram executados várias vezes ao dia Todos os testes eram executados várias vezes ao dia Resultado: sucesso Resultado: sucesso 12 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... Se você acha que não vai gostar, primeiro prove... 13

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)


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

Apresentações semelhantes


Anúncios Google