SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
Integração Contínua
Cuidando de Sistemas Doentes
Quem sou eu
• Jefferson Moreira - www.jeffmor.com
• Ciência da Computação / Engenharia de
  Software OO
• Desenvolvedor e Coordenador Qualidade de
  Software da Agence Consultoria.
• Desenvolvedor desde 2002 (PHP, Delphi, C++)
• Com Java desde 2003
• Instrutor do SENAC
• Coordenador do JUG-MS
Objetivo
    Gerar Software funcionando :D
•
    Confiança no produto
•
    Diagnosticar problemas
•
    Verificar a qualidade do Software.
•
    Redução de Riscos
•
    Automatização de processos repetitivos
•
    Prática dos conceitos.
•
Agenda
• Histórico
    Mitos
•
    Testes
•
    Controle de Versão
•
    Processo de Integração Contínua
•
    Servidores
•
    Inspeção e Práticas
•
    Feedback
•
Histórico – 80
Histórico – 80
• Anos 80 - década da “caverna”
• Ausência de metodologias de
  desenvolvimento[9]
• Programação procedural e estruturada. [9]
• Dificuldade de simular relações entre
  entidades em processos de negócios. [9]
Histórico – 90
Histórico – 90[9]
    Linguagem UML.
•
    Processos Unificados (UP).
•
    Metodologias Orientadas a Objetos.
•
    Fases bem definidas e controladas.
•
    “Igual” a Engenharia Civil.
•
    Concepção, Elaboração, Construção e
•
    Transição.
Processo Unificado[9]
  Código complexo.
•
  Manutenção difícil.
•
  Baixa produtividade.
•
  Cronograma sempre atrasado.
•
  Insatisfação de todos.
•
  Documentação defasada, excessiva e
•
  ilegível.
• Fracasso no projeto.
Metodologia Ágil [1]
• Satisfação do Cliente como prioridade máxima,
  através da entrega contínua de valor agregado
• A principal medida de progresso é software
  funcionando
• Equipes auto-gerenciáveis, indivíduos motivados,
  comunicação e simplicidade são valores
  importantes
• Melhoria    Contínua     para     maximizar    a
  produtividade e excelência da equipe
Agenda
• Histórico
• Mitos
    Testes
•
    Controle de Versão
•
    Integração Contínua
•
    Servidores
•
    Inspeção e Práticas
•
    Feedback
•
Bombeiros?
Bombeiros?
• Será que desenvolvedores tem que ficar
  sempre apagando incêndios?
• Será que não estamos desrespeitando os
  nossos sistemas com essa atitute?
Sistemas Doentes
• Já viu algum sistema “doente”?
• Alguns sistemas são muito dodóis
• Já viu algum sistema ser infectado por
  algum vírus (Desenvolvedor)?
Sistemas como PACIENTES!
Vacina ajuda!
Mas o
negócio é
T-E-S-T-AR
Escrevendo testes!
Depois eu escrevo o teste
O prazo está apertado. Vamos
deixar os testes para a próxima fase!
Na minha máquina funcionou!
Sendo médico
A verdade!
  Repleto de Best Practices
•
  Muito se fala
•
  Raramente se faz
•
  Casos de teste sempre são deixados para
•
  depois
• Quanto mais pressão você sofre, menos
  testes você escreve.
Agenda
• Histórico
• Mitos
• Testes
    Controle de Versão
•
    Integração Contínua
•
    Servidores
•
    Inspeção e Práticas
•
    Feedback
•
Testes

• Essencial para análise de desempenho
• Aumento de produtividade dos
  desenvolvedores
• Essencial para refactoring
Ferramentas de teste
• JUnit
• Selenium, httpUnit, WebDriver (aplicações
  web)
• Cactus (aplicações EJB)
• jemmy e Abbot (aplicações Desktop)
Agenda
• Histórico
• Mitos
• Testes
• Controle de Versão
    Integração Contínua
•
    Servidores
•
    Inspeção e Práticas
•
    Feedback
•
Controle de Versão
    CVS
•
    Subversion
•
    ClearCase
•
    Perforce
•
    StarTeam
•
    Git
•
    PVCS, VSS e MKS e etc...
•
Agenda
    Histórico
•
    Mitos
•
    Testes
•
    Controle de Versão
•
• Integração Contínua
• Servidores
• Inspeção e Práticas
• Feedback
Integração Contínua
• Integração contínua consiste em
  integrar o trabalho diversas vezes ao dia,
  assegurando que a base de código
  permaneça consistente ao final de cada
  integração.
Demonstração do processo
Agenda
    Histórico
•
    Mitos
•
    Testes
•
    Controle de Versão
•
    Integração Contínua
•
• Servidores
• Inspeção e Prática
• Feedback
Impraticável rodar todos os testes a cada
               alteração
Servidores
    Hudson
•
    Cruise Control
•
    Continuum
•
    Luntbuild
•
    Anthill
•
    Pulse
•
    Build Forge
•
    Damage Control
•
    Team City
•
    Gump
•
[5 ]

• Disponibilizado como Open Source pela
  ThoughtWorks
• Implementado em Java
• Administração Desktop
• Interface um pouco confusa.
• Suporte a Java apenas, mas com uma
  versão dedicada a .NET
[5 ]

• Open Source desenvolvido pela Apache
  Fundation
• Desenvolvido em Java
• Administração via WEB
• Suporte nativo a ANT, Maven 1 e 2 e Shell Script
  para outras linguagens
• Disponibilizado como Open Source pela
  Sun.
• Facilidade de instalação e utilização.
• Muitos plugins.
• Suporte 8 idiomas inclusive o Português.
Agenda
    Histórico
•
    Mitos
•
    Testes
•
    Controle de Versão
•
    Integração Contínua
•
    Servidores
•
• Inspeção e Prática
• Feedback
Go Go Go
Agenda
    Histórico
•
    Mitos
•
    Testes
•
    Controle de Versão
•
    Integração Contínua
•
    Servidores
•
    Inspeção e Prática
•
• Feedback
Paciente tratado
Feedback
• Difícil enxergar se você é o único
  desenvolvedor da equipe.
• Fundamental para testar.
• A grande maioria dos bugs se manifestam
  já no mesmo dia em que são comitados.
• Aumento de produtividade.
• Métricas de qualidade aferidas.
• Paciente tratado!
Referências
[1]http://w w w .m a rtinfo w ler.c om /a rtic les /c ontinuous I nteg ra tio
   n.htm l
[2]http://w w w .im pro veit.c om .br/x p/pra tic a s /integ ra c a o
[3]http://w w w .ja m es s hore.c o m /B lo g /C ontinuous -I nteg ra tion-
   on-a -D olla r-a -D a y.htm l
[4]http://ja yflow ers .c o m /jo om la /index .php? optio n=c om _c onten
   t& ta s k =view & id=26
[5]http://blog .uruba ta n.c om .br
[6]http://rfium e.blog s pot.c om /2007/03/tes tes -de-a c eita o -em -
   a plic a es -s w ing .htm l
[7] J a va M a g a zine – C ons truç ã o e T es tes A uto m a tiza dos . A no
   4 E diç ã o 62
[8]http://w w w -
   128.ibm .c om /developerw ork s /ra tiona l/libra ry/s ep05/lee/
[9]http://w w w .m ilfont.org
[10]http://m a ldita c o m edia .blog s po t.c om
Dúvidas?
Copyright

Jefferson Moreira
   www.jeffmor.com
  jeffmor@gmail.com
Licença
    Este material está licenciado sob a Licença Creative-Commons
•
    Atribuição-Uso Não-Comercial-Compartilhamento pela
    mesma Licença 2.5 Brasil
    Você pode:
•
     – Copiar, distribuir, exibir e executar a obra
     – Criar obras derivadas
    Sob as seguintes condições:
•
     – Atribuição. Você deve dar crédito ao autor original, da forma especificada
       pelo autor ou licenciante.
     – Uso Não-Comercial. Você não pode utilizar esta obra com finalidades
       comerciais.
     – Compartilhamento pela mesma Licença. Se você alterar, transformar,
       ou criar outra obra com base nesta, você somente poderá distribuir a obra
       resultante sob uma licença idêntica a esta.
IC Cuidando de Sistemas Doentes

Contenu connexe

Tendances

Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Edlaine Zamora
 
Fábrica de Teste de Software - Palestrante: Marcus Dratovsky
Fábrica de Teste de Software - Palestrante: Marcus DratovskyFábrica de Teste de Software - Palestrante: Marcus Dratovsky
Fábrica de Teste de Software - Palestrante: Marcus DratovskyRio Info
 
Processo de Teste de Software
Processo de Teste de SoftwareProcesso de Teste de Software
Processo de Teste de Softwarewtmrio
 
Janaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a QualidadeJanaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a Qualidademinastestingconference
 
[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de TestesGUTS-RS
 
Testes de Performance com JMeter
Testes de Performance com JMeterTestes de Performance com JMeter
Testes de Performance com JMeterEdlaine Zamora
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterEdlaine Zamora
 
Práticas DevOps com Zend Server
Práticas DevOps com Zend ServerPráticas DevOps com Zend Server
Práticas DevOps com Zend ServerDiego Santos
 
Taise Dias - Análise efetiva de microserviços em 3 passos
Taise Dias - Análise efetiva de microserviços em 3 passosTaise Dias - Análise efetiva de microserviços em 3 passos
Taise Dias - Análise efetiva de microserviços em 3 passosminastestingconference
 
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Edlaine Zamora
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeKamilla Queiroz Xavier
 
Desenvolvendo com qualidade em ambientes caóticos
Desenvolvendo com qualidade em ambientes caóticosDesenvolvendo com qualidade em ambientes caóticos
Desenvolvendo com qualidade em ambientes caóticosGuilherme Cardoso
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de softwareQualister
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingSamanta Cicilia
 
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voceTDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em vocetdc-globalcode
 
POG - Definição e Conceitos
POG - Definição e ConceitosPOG - Definição e Conceitos
POG - Definição e ConceitosLuciano Reis
 

Tendances (20)

Testes ágeis
Testes ágeisTestes ágeis
Testes ágeis
 
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
 
Fábrica de Teste de Software - Palestrante: Marcus Dratovsky
Fábrica de Teste de Software - Palestrante: Marcus DratovskyFábrica de Teste de Software - Palestrante: Marcus Dratovsky
Fábrica de Teste de Software - Palestrante: Marcus Dratovsky
 
Processo de Teste de Software
Processo de Teste de SoftwareProcesso de Teste de Software
Processo de Teste de Software
 
Janaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a QualidadeJanaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a Qualidade
 
[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes
 
Testes de Performance com JMeter
Testes de Performance com JMeterTestes de Performance com JMeter
Testes de Performance com JMeter
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
 
QA além da automação
QA além da automaçãoQA além da automação
QA além da automação
 
Práticas DevOps com Zend Server
Práticas DevOps com Zend ServerPráticas DevOps com Zend Server
Práticas DevOps com Zend Server
 
Taise Dias - Análise efetiva de microserviços em 3 passos
Taise Dias - Análise efetiva de microserviços em 3 passosTaise Dias - Análise efetiva de microserviços em 3 passos
Taise Dias - Análise efetiva de microserviços em 3 passos
 
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a Qualidade
 
Desenvolvendo com qualidade em ambientes caóticos
Desenvolvendo com qualidade em ambientes caóticosDesenvolvendo com qualidade em ambientes caóticos
Desenvolvendo com qualidade em ambientes caóticos
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de software
 
Selenium WebDriver com Docker
Selenium WebDriver com DockerSelenium WebDriver com Docker
Selenium WebDriver com Docker
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression Testing
 
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voceTDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
 
POG - Definição e Conceitos
POG - Definição e ConceitosPOG - Definição e Conceitos
POG - Definição e Conceitos
 
Automação de Testes - How to do It Right
Automação de Testes - How to do It RightAutomação de Testes - How to do It Right
Automação de Testes - How to do It Right
 

En vedette

Workshop Desenvolvimento Agil
Workshop Desenvolvimento AgilWorkshop Desenvolvimento Agil
Workshop Desenvolvimento AgilSaulo Arruda
 
Analista de negócios no mundo agile
Analista de negócios no mundo agileAnalista de negócios no mundo agile
Analista de negócios no mundo agileJefferson Moreira
 
Desenvolvimento Agil - Vivendo fora da caixinha
Desenvolvimento Agil - Vivendo fora da caixinhaDesenvolvimento Agil - Vivendo fora da caixinha
Desenvolvimento Agil - Vivendo fora da caixinhaSaulo Arruda
 
Startups - É programando que se empreende
Startups - É programando que se empreendeStartups - É programando que se empreende
Startups - É programando que se empreendeSaulo Arruda
 
Como ganhar dinheiro com aplicativos mobile
Como ganhar dinheiro com aplicativos mobileComo ganhar dinheiro com aplicativos mobile
Como ganhar dinheiro com aplicativos mobileJefferson Moreira
 
Todo mundo nasce Agil
Todo mundo nasce AgilTodo mundo nasce Agil
Todo mundo nasce AgilSaulo Arruda
 
Empreendedorismo e Desenvolvimento Agil
Empreendedorismo e Desenvolvimento AgilEmpreendedorismo e Desenvolvimento Agil
Empreendedorismo e Desenvolvimento AgilSaulo Arruda
 

En vedette (10)

Workshop Desenvolvimento Agil
Workshop Desenvolvimento AgilWorkshop Desenvolvimento Agil
Workshop Desenvolvimento Agil
 
Analista de negócios no mundo agile
Analista de negócios no mundo agileAnalista de negócios no mundo agile
Analista de negócios no mundo agile
 
Desenvolvimento Agil - Vivendo fora da caixinha
Desenvolvimento Agil - Vivendo fora da caixinhaDesenvolvimento Agil - Vivendo fora da caixinha
Desenvolvimento Agil - Vivendo fora da caixinha
 
Startups - É programando que se empreende
Startups - É programando que se empreendeStartups - É programando que se empreende
Startups - É programando que se empreende
 
Web 2.0 Evolução
Web 2.0 EvoluçãoWeb 2.0 Evolução
Web 2.0 Evolução
 
Como ganhar dinheiro com aplicativos mobile
Como ganhar dinheiro com aplicativos mobileComo ganhar dinheiro com aplicativos mobile
Como ganhar dinheiro com aplicativos mobile
 
Arquitetura de Sofware
Arquitetura de SofwareArquitetura de Sofware
Arquitetura de Sofware
 
Todo mundo nasce Agil
Todo mundo nasce AgilTodo mundo nasce Agil
Todo mundo nasce Agil
 
Empreendedorismo e Desenvolvimento Agil
Empreendedorismo e Desenvolvimento AgilEmpreendedorismo e Desenvolvimento Agil
Empreendedorismo e Desenvolvimento Agil
 
Robotica para-humanos
Robotica para-humanosRobotica para-humanos
Robotica para-humanos
 

Similaire à IC Cuidando de Sistemas Doentes

Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...Daniel Wildt
 
Estratégias e Técnicas de Testes - Parte1
Estratégias e Técnicas de Testes - Parte1Estratégias e Técnicas de Testes - Parte1
Estratégias e Técnicas de Testes - Parte1Lorena Caldas
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínuaguesta433a8
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesPaulo César M Jeveaux
 
Gerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de SistemaGerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de Sistemaelliando dias
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMAdriano Bertucci
 
Introdução a Testes Automatizados
Introdução a Testes AutomatizadosIntrodução a Testes Automatizados
Introdução a Testes Automatizadoselliando dias
 
Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testeselliando dias
 
Depurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSDepurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSThiago Rodrigues
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
 
[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery[Lady talks]Continuous Delivery
[Lady talks]Continuous DeliverySamanta Cicilia
 

Similaire à IC Cuidando de Sistemas Doentes (20)

Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
 
Estratégias e Técnicas de Testes - Parte1
Estratégias e Técnicas de Testes - Parte1Estratégias e Técnicas de Testes - Parte1
Estratégias e Técnicas de Testes - Parte1
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
2PHP_Metodologia
2PHP_Metodologia2PHP_Metodologia
2PHP_Metodologia
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de Testes
 
Uma Olhada no Netbeans 6
Uma Olhada no Netbeans 6Uma Olhada no Netbeans 6
Uma Olhada no Netbeans 6
 
Gerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de SistemaGerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de Sistema
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 
Testes
TestesTestes
Testes
 
Introdução a Testes Automatizados
Introdução a Testes AutomatizadosIntrodução a Testes Automatizados
Introdução a Testes Automatizados
 
TDD
TDDTDD
TDD
 
Palestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnitPalestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnit
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testes
 
Qualidade e Teste de Software
Qualidade e Teste de SoftwareQualidade e Teste de Software
Qualidade e Teste de Software
 
Depurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSDepurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSS
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery
 
TesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdfTesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdf
 

IC Cuidando de Sistemas Doentes

  • 2. Quem sou eu • Jefferson Moreira - www.jeffmor.com • Ciência da Computação / Engenharia de Software OO • Desenvolvedor e Coordenador Qualidade de Software da Agence Consultoria. • Desenvolvedor desde 2002 (PHP, Delphi, C++) • Com Java desde 2003 • Instrutor do SENAC • Coordenador do JUG-MS
  • 3. Objetivo Gerar Software funcionando :D • Confiança no produto • Diagnosticar problemas • Verificar a qualidade do Software. • Redução de Riscos • Automatização de processos repetitivos • Prática dos conceitos. •
  • 4. Agenda • Histórico Mitos • Testes • Controle de Versão • Processo de Integração Contínua • Servidores • Inspeção e Práticas • Feedback •
  • 6. Histórico – 80 • Anos 80 - década da “caverna” • Ausência de metodologias de desenvolvimento[9] • Programação procedural e estruturada. [9] • Dificuldade de simular relações entre entidades em processos de negócios. [9]
  • 8. Histórico – 90[9] Linguagem UML. • Processos Unificados (UP). • Metodologias Orientadas a Objetos. • Fases bem definidas e controladas. • “Igual” a Engenharia Civil. • Concepção, Elaboração, Construção e • Transição.
  • 9. Processo Unificado[9] Código complexo. • Manutenção difícil. • Baixa produtividade. • Cronograma sempre atrasado. • Insatisfação de todos. • Documentação defasada, excessiva e • ilegível. • Fracasso no projeto.
  • 10. Metodologia Ágil [1] • Satisfação do Cliente como prioridade máxima, através da entrega contínua de valor agregado • A principal medida de progresso é software funcionando • Equipes auto-gerenciáveis, indivíduos motivados, comunicação e simplicidade são valores importantes • Melhoria Contínua para maximizar a produtividade e excelência da equipe
  • 11. Agenda • Histórico • Mitos Testes • Controle de Versão • Integração Contínua • Servidores • Inspeção e Práticas • Feedback •
  • 13. Bombeiros? • Será que desenvolvedores tem que ficar sempre apagando incêndios? • Será que não estamos desrespeitando os nossos sistemas com essa atitute?
  • 14.
  • 15. Sistemas Doentes • Já viu algum sistema “doente”? • Alguns sistemas são muito dodóis • Já viu algum sistema ser infectado por algum vírus (Desenvolvedor)?
  • 20. Depois eu escrevo o teste
  • 21. O prazo está apertado. Vamos deixar os testes para a próxima fase!
  • 22. Na minha máquina funcionou!
  • 24. A verdade! Repleto de Best Practices • Muito se fala • Raramente se faz • Casos de teste sempre são deixados para • depois • Quanto mais pressão você sofre, menos testes você escreve.
  • 25. Agenda • Histórico • Mitos • Testes Controle de Versão • Integração Contínua • Servidores • Inspeção e Práticas • Feedback •
  • 26. Testes • Essencial para análise de desempenho • Aumento de produtividade dos desenvolvedores • Essencial para refactoring
  • 27. Ferramentas de teste • JUnit • Selenium, httpUnit, WebDriver (aplicações web) • Cactus (aplicações EJB) • jemmy e Abbot (aplicações Desktop)
  • 28. Agenda • Histórico • Mitos • Testes • Controle de Versão Integração Contínua • Servidores • Inspeção e Práticas • Feedback •
  • 29. Controle de Versão CVS • Subversion • ClearCase • Perforce • StarTeam • Git • PVCS, VSS e MKS e etc... •
  • 30. Agenda Histórico • Mitos • Testes • Controle de Versão • • Integração Contínua • Servidores • Inspeção e Práticas • Feedback
  • 31. Integração Contínua • Integração contínua consiste em integrar o trabalho diversas vezes ao dia, assegurando que a base de código permaneça consistente ao final de cada integração.
  • 33. Agenda Histórico • Mitos • Testes • Controle de Versão • Integração Contínua • • Servidores • Inspeção e Prática • Feedback
  • 34. Impraticável rodar todos os testes a cada alteração
  • 35. Servidores Hudson • Cruise Control • Continuum • Luntbuild • Anthill • Pulse • Build Forge • Damage Control • Team City • Gump •
  • 36. [5 ] • Disponibilizado como Open Source pela ThoughtWorks • Implementado em Java • Administração Desktop • Interface um pouco confusa. • Suporte a Java apenas, mas com uma versão dedicada a .NET
  • 37. [5 ] • Open Source desenvolvido pela Apache Fundation • Desenvolvido em Java • Administração via WEB • Suporte nativo a ANT, Maven 1 e 2 e Shell Script para outras linguagens
  • 38. • Disponibilizado como Open Source pela Sun. • Facilidade de instalação e utilização. • Muitos plugins. • Suporte 8 idiomas inclusive o Português.
  • 39. Agenda Histórico • Mitos • Testes • Controle de Versão • Integração Contínua • Servidores • • Inspeção e Prática • Feedback
  • 41. Agenda Histórico • Mitos • Testes • Controle de Versão • Integração Contínua • Servidores • Inspeção e Prática • • Feedback
  • 43. Feedback • Difícil enxergar se você é o único desenvolvedor da equipe. • Fundamental para testar. • A grande maioria dos bugs se manifestam já no mesmo dia em que são comitados. • Aumento de produtividade. • Métricas de qualidade aferidas. • Paciente tratado!
  • 44. Referências [1]http://w w w .m a rtinfo w ler.c om /a rtic les /c ontinuous I nteg ra tio n.htm l [2]http://w w w .im pro veit.c om .br/x p/pra tic a s /integ ra c a o [3]http://w w w .ja m es s hore.c o m /B lo g /C ontinuous -I nteg ra tion- on-a -D olla r-a -D a y.htm l [4]http://ja yflow ers .c o m /jo om la /index .php? optio n=c om _c onten t& ta s k =view & id=26 [5]http://blog .uruba ta n.c om .br [6]http://rfium e.blog s pot.c om /2007/03/tes tes -de-a c eita o -em - a plic a es -s w ing .htm l [7] J a va M a g a zine – C ons truç ã o e T es tes A uto m a tiza dos . A no 4 E diç ã o 62 [8]http://w w w - 128.ibm .c om /developerw ork s /ra tiona l/libra ry/s ep05/lee/ [9]http://w w w .m ilfont.org [10]http://m a ldita c o m edia .blog s po t.c om
  • 46. Copyright Jefferson Moreira www.jeffmor.com jeffmor@gmail.com
  • 47. Licença Este material está licenciado sob a Licença Creative-Commons • Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil Você pode: • – Copiar, distribuir, exibir e executar a obra – Criar obras derivadas Sob as seguintes condições: • – Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. – Uso Não-Comercial. Você não pode utilizar esta obra com finalidades comerciais. – Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta.