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

Slides:



Advertisements
Apresentações semelhantes
Soluções elegantes para problemas recorrentes
Advertisements

Desenvolvimento de Plug-ins Orientado a Testes
Raphael Gatti Thomás Bryan
XP EXTREME PROGRAMMING
Uma metodologia inovadora…
Projeto e Execução dos Testes Responsáveis: Filipe Motta Walter Felipe.
Análise e Projeto de Sistemas I
Garantia de Qualidade do software
Tópicos Motivação para teste Por que algumas empresas não testam
Test-Driven Development: uma visão prática
CK 119: Engenharia de Software DC/CC/UFC © Rossana Andrade, Setembro CK119: Engenharia de Software Rossana Andrade Ph.D, SITE, University of Ottawa,
Desenvolvimento Guiado por Testes
Modelos de processo de software:
Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva.
Extreme Programming Walfredo Cirne Universidade Federal da Paraíba.
Test Driven Development
Programação orientada a objetos com Java
Introdução a Linguagem JAVA
Ci&T SPIN – Campinas Equipe de testes em projetos com CI e TDD.
Como Desenvolver Sistemas de Informação
MÉTRICAS PARA MELHORIA CONTÍNUA DE CÓDIGO UM ESTUDO DE CASO COM JAVA
MÉTRICAS ASSOCIADAS AO DESENVOLVIMENTO DE
MÉTRICAS ASSOCIADAS AO DESENVOLVIMENTO DE
MÉTRICAS ASSOCIADAS AO DESENVOLVIMENTO DE
Test-Driven Development
Linguagem Técnica II Testes Automatizados Aula 04 Prof
Introdução ao Teste Unitário com JUnit
Métodos Ágeis Agile Modeling, ou AG
Técnicas e Projeto de Sistemas
Avaliação Experimental de Técnicas Ágeis de Desenvolvimento
Avaliação Experimental de Técnicas Ágeis de Desenvolvimento
O Fluxo de Implementação
Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha.
Engenharia de Software
Test Driven Development por Johann Gomes e Thaís Moura.
Utilizando Testes Unitários Gleibson Rodrigo “dartanham” Fontes: antiga apresentação de testes da disciplina de ESS e na curso de testes do PDesigner.
Um Framework Para Testes
Introdução a Desenvolvimento de Sistemas
Processo de Desenvolvimento de Software
Gerência de Configuração - GC
Introdução a Desenvolvimento de Sistemas
XPRecife Madson Menezes Costa Ricardo de Oliveira Cavalcanti.
The art of Unit Testing. Unit testing O Um teste unitário é uma parte de código (geralmente um método/função), que invoca outra parte de codigo e verifica.
1 Test Driven Development John Jonathan da Silva /
METODOLOGIAS ÁGEIS TESTES UNITÁRIOS.
3/4/2015 Prof. Msc George Cabral Bacharelado em Sistema de Informação Ambientes de Desenvolvimento de Software.
Especificação em Projeto de Sistemas
EXTREME PROGRAMMING XP.
Automação de Testes de Software
13/11/2007 João Arthur Brunet Monteiro GMF/DSC/CEEI/UFCG Evolução de Software A Survey of Software Refactoring Reconstruction of Successful Software Evolution.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: Singleton, Professores Eduardo Bezerra –
Implementação TCP Francisco Krahe Luis Brandelli.
April 05 Prof. Ismael H. F. Santos - 1 Modulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra –
Métodos Ágeis e Programação Extrema (XP)
Engenharia de Software
Engenharia de Software
1 Junit Motivação para o uso André Luís Moreira
Engenharia de Software
Evolução de Software e Refatoração
Qualidade de Software O que é ‘Qualidade de Software’?
J U nit Um Framework Para Testes. Motivação  Todos os programadores sabem que devem testar seu código  Quanto mais curto o prazo menos testes são realizados.
Extreme Programming Alexandre Nodari.
REFATORAÇÃO JOÃO LACERDA DJALMA LIMA. MARTIN FOWLER É um autor conhecido na área de arquitetura de software, especializado em análise orientada a objetos,
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Testes de Unidade. 2 Pauta Testes de Unidade; Testes de Unidade; Desenvolvimento orientado a testes; Desenvolvimento orientado a testes; Testes unitários.
Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão Hugo Corbucci.
Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão Mariana Bravo.
Desenvolvimento Dirigido por Testes (TDD)
TQS - Teste e Qualidade de Software (Software Testing and Quality) Test Driven Devlopment Experiment João Pascoal Faria.
Workshop Agile tdd - Test Driven development
Transcrição da apresentação:

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

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!!!

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)

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

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)

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)

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)

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)

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)

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)

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

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)

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

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 Scott Amblers Web Site ( 14 Test Driven Development (Hyggo Oliveira de Almeida)