SlideShare a Scribd company logo
1 of 35
Esteróides JEE
Cuidando de softwares doentes
Apresentação


 Quem somos nós?
  • Jefferson Moreira (www.jeffmor.com)
     • Ciência da Computação / Engenharia
       de Software OO.
     • Desenvolvedor e Coordenador da
       Agence
     • Desenvolvedor desde 2002
     • Com java desde 2003
     • Instrutor do SENAC
     • Coordenador do JUGMS
Apresentação


 Quem somos nós?
  • Saulo Arruda (http://sauloarruda.eti.br)
     • Especialista em Melhoria do Processo
       de Software pela UFLA;
     • Diretor de TI da Agence Consultoria;
     • Diretor Pedagógico da Agence
       Educacional;
     • 10 anos de experiência em projetos de
       software;
     • Coordenador do JUG-MS
Agenda


 Agenda




   • Diagnóstico
   • Tratamento (Internação)
   • Alta




                               4
Diagnóstico


 Importância


  •   Gerar software funcionando
  •   Confiança no produto
  •   Diagnosticar problemas
  •   Qualidade do software
  •   Redução de riscos




                                   5
Diagnóstico


 Conceitos


  • Teste: é a atividade de executar um
    software com o objetivo de revelar falhas
  • Falha: desvio do comportamento
    especificado
  • Erro: origem da falha




                                         6
Diagnóstico


 Conceitos
  • Validação
       – Estamos fazendo o sistema certo?
       – Ponto de vista do usuário




                                            7
Diagnóstico


 Conceitos
  • Verificação
       – Estamos fazendo certo o
         sistema?
       – Ponto de vista do
         desenvolvedor




                                   8
Diagnóstico


 Quando eu começo a testar?
  • Na fase inicial: especificação de
    requisitos




                                       9
Diagnóstico


 Técnicas de Teste
  • Caixa Branca




                     10
Diagnóstico


 Técnicas de Teste
  • Caixa Preta




                     11
Diagnóstico


 Técnicas de Teste
  • Caixa-cinza
  • Regressão
  • Não funcionais
       – Desempenho
       – Carga
       – Usabilidade)




                        12
Diagnóstico


 Fases
  • Unitário
       – Evita bug com código mal
         feito
       – Confiança no sistema
       – Alterações sem medo
       – Testa a falha e o sucesso
       – Utilização de Mocks
       – Serve como métrica



                                     13
Diagnóstico


 Fases
  • Integração
       – É essencial
       – Difícil de testar todas
         as situações.
       – Massa de Dados
       – Integração de
         serviços
       – Integração !=
         Interface


                                   14
Diagnóstico


 Fases
  • Funcional
       – Funcionalidades
       – Requisitos
       – Regra de
         Negócios
       – Tem tela, mas
         não é tela.




                           15
Diagnóstico


 Dificuldades do dia-a-dia




                             16
Diagnóstico




              17
Diagnóstico


 Caso de Teste

• Curto
• Fácil de ler
• Rápido de
  executar
• Auto-explicativo
• Redução de risco
• Medir Qualidade



                     18
Agenda


  Agenda




   • Diagnóstico
   • Tratamento (Internação)
   • Alta




                               19
Tratamento


  “Comecem com esteróides”




                             20
Agenda


  Estudo de Caso
 • Aplicação JEE que usa EJB e JPA
 • Testes unitários e de integração (usando
   openejb)
 • Classes base utilitárias para
   implementação de testes de integração;
 • Uso de fixtures em arquivos XML;
 • Projeto de exemplo para uma folha de
   pagamento de desenvolvedores;


                                        21
Ferramentas


  Ferramentas



      • JUnit
      • OpenEJ
        B
      • Maven




                 22
Tratamento




             23
Agenda


  Agenda




   • Diagnóstico
   • Tratamento (Internação)
   • Alta




                               24
Alta


   Conclusão
   • Dificuldades com testes:
       – Massa de dados: resolvemos com a
         criação de fixtures. Temos projetos com
         mais de 10.000 registros inseridos por
         fixtures geradas.
       – Teste no container: openejb tem se
         mostrado uma boa solução, sendo muito
         mais leve para testes de integração que
         JBoss, Glassfish, etc.
       – Independência: usar um banco de

                                             25
Alta


   Extensões futuras


       • Gerador de fixtures a partir de planilhas
         (estamos testando a versão beta);
       • Auto-teste a partir de condições pré-
         estabelecidas (versão alfa);
       • Integração com JUnitPerf para testes de
         performance;
       • Isto é um Pattern ou um Framework?


                                              26
Dúvidas


  Perguntas?




               27
Dúvidas


  Perguntas?


   • Vocês vão disponibilizar o código-
     fonte?




                                          27
Dúvidas


  Perguntas?


   • Vocês vão disponibilizar o código-
     fonte?
          – http://esteroides.agence.com.br/




                                               27
Dúvidas


  Perguntas?


   • Vocês vão disponibilizar o código-
     fonte?
          – http://esteroides.agence.com.br/
   • Posso colaborar com essa “idéia”?




                                               27
Dúvidas


  Perguntas?


   • Vocês vão disponibilizar o código-
     fonte?
          – http://esteroides.agence.com.br/
   • Posso colaborar com essa “idéia”?
          – Deve! Quanto mais melhor!




                                               27
Dúvidas


  Perguntas?


   • Vocês vão disponibilizar o código-
     fonte?
          – http://esteroides.agence.com.br/
   • Posso colaborar com essa “idéia”?
          – Deve! Quanto mais melhor!
   • Vocês já usaram DBUnit?



                                               27
Dúvidas


  Perguntas?


   • Vocês vão disponibilizar o código-
     fonte?
          – http://esteroides.agence.com.br/
   • Posso colaborar com essa “idéia”?
          – Deve! Quanto mais melhor!
   • Vocês já usaram DBUnit?
          – Sim, é um saco!


                                               27
28
Cuidando de softwares doentes com testes automatizados

More Related Content

What's hot

Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testeselliando dias
 
Testes e Refatoração
Testes e RefatoraçãoTestes e Refatoração
Testes e Refatoraçãoguest23778e
 
Como tornar o testador parte da equipe
Como tornar o testador parte da equipeComo tornar o testador parte da equipe
Como tornar o testador parte da equipeElias Nogueira
 
Palestra - Testes de Usabilidade
Palestra - Testes de UsabilidadePalestra - Testes de Usabilidade
Palestra - Testes de UsabilidadeLuiz Agner
 
Carreira em testes de software
Carreira em testes de softwareCarreira em testes de software
Carreira em testes de softwareJoyce Bastos
 
Perspectivas em teste de software
Perspectivas em teste de softwarePerspectivas em teste de software
Perspectivas em teste de softwareQualister
 
Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...GessdaSilvaMachado
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes ExploratóriosAlan Carlos
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?Ariane Izac
 
Reconhecendo suas habilidades como Testador
Reconhecendo suas habilidades como Testador Reconhecendo suas habilidades como Testador
Reconhecendo suas habilidades como Testador Elias Nogueira
 

What's hot (12)

Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testes
 
Testes e Refatoração
Testes e RefatoraçãoTestes e Refatoração
Testes e Refatoração
 
Como tornar o testador parte da equipe
Como tornar o testador parte da equipeComo tornar o testador parte da equipe
Como tornar o testador parte da equipe
 
Palestra - Testes de Usabilidade
Palestra - Testes de UsabilidadePalestra - Testes de Usabilidade
Palestra - Testes de Usabilidade
 
Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1
 
Carreira em testes de software
Carreira em testes de softwareCarreira em testes de software
Carreira em testes de software
 
Perspectivas em teste de software
Perspectivas em teste de softwarePerspectivas em teste de software
Perspectivas em teste de software
 
Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes Exploratórios
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?
 
Reconhecendo suas habilidades como Testador
Reconhecendo suas habilidades como Testador Reconhecendo suas habilidades como Testador
Reconhecendo suas habilidades como Testador
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 

Viewers also liked

Esteróides anabolizantes 1ºs anos
Esteróides anabolizantes 1ºs anosEsteróides anabolizantes 1ºs anos
Esteróides anabolizantes 1ºs anosaluisiobraga
 
Bioquimica 2 Carboidratos
Bioquimica 2   CarboidratosBioquimica 2   Carboidratos
Bioquimica 2 Carboidratosguest67130e
 
Bioquímica Celular
Bioquímica CelularBioquímica Celular
Bioquímica CelularBio
 
Quimica Alimentos Lipideos I
Quimica Alimentos Lipideos IQuimica Alimentos Lipideos I
Quimica Alimentos Lipideos IRicardo Stefani
 

Viewers also liked (7)

Exercícios lipídeos
Exercícios lipídeosExercícios lipídeos
Exercícios lipídeos
 
Esteróides anabolizantes 1ºs anos
Esteróides anabolizantes 1ºs anosEsteróides anabolizantes 1ºs anos
Esteróides anabolizantes 1ºs anos
 
Carboidratos
CarboidratosCarboidratos
Carboidratos
 
Bioquimica 2 Carboidratos
Bioquimica 2   CarboidratosBioquimica 2   Carboidratos
Bioquimica 2 Carboidratos
 
Esteróides anabolizantes
Esteróides anabolizantesEsteróides anabolizantes
Esteróides anabolizantes
 
Bioquímica Celular
Bioquímica CelularBioquímica Celular
Bioquímica Celular
 
Quimica Alimentos Lipideos I
Quimica Alimentos Lipideos IQuimica Alimentos Lipideos I
Quimica Alimentos Lipideos I
 

Similar to Cuidando de softwares doentes com testes automatizados

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
 
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
 
Testes em métodos ágeis
Testes em métodos ágeisTestes em métodos ágeis
Testes em métodos ágeisQualister
 
IC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas DoentesIC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas DoentesJefferson Moreira
 
Introdução a Testes de Software
Introdução a Testes de SoftwareIntrodução a Testes de Software
Introdução a Testes de SoftwareIgor Takenami
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaRogerio Fontes
 
Softwares de apoio ao desenvolvimento 2012
Softwares de apoio ao desenvolvimento   2012Softwares de apoio ao desenvolvimento   2012
Softwares de apoio ao desenvolvimento 2012Diogo Winck
 
Mineração de Repositórios de Defeitos
Mineração de Repositórios de DefeitosMineração de Repositórios de Defeitos
Mineração de Repositórios de DefeitosRodrigo Rocha
 
At Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionAt Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionLeonardo Molinari
 
At Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionAt Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionLeonardo Molinari
 
Verdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaVerdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaLivia Gabos
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de SoftwareQualister
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de softwareFelipe Bugov
 
Meus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de SoftwareMeus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de SoftwareVanilton Pinheiro
 
Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay
Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDayQuando utilizar Crowdsourcing em Testes | Crowdtest no DevDay
Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDayBase2 Tecnologia
 

Similar to Cuidando de softwares doentes com testes automatizados (20)

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
 
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
 
Testes em métodos ágeis
Testes em métodos ágeisTestes em métodos ágeis
Testes em métodos ágeis
 
IC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas DoentesIC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas Doentes
 
Introdução a Testes de Software
Introdução a Testes de SoftwareIntrodução a Testes de Software
Introdução a Testes de Software
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
 
Softwares de apoio ao desenvolvimento 2012
Softwares de apoio ao desenvolvimento   2012Softwares de apoio ao desenvolvimento   2012
Softwares de apoio ao desenvolvimento 2012
 
Teste de software gestao e kaizen
Teste de software gestao e kaizenTeste de software gestao e kaizen
Teste de software gestao e kaizen
 
Mineração de Repositórios de Defeitos
Mineração de Repositórios de DefeitosMineração de Repositórios de Defeitos
Mineração de Repositórios de Defeitos
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
At Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionAt Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final Version
 
At Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionAt Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final Version
 
Verdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaVerdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostaria
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 
Meus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de SoftwareMeus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de Software
 
Testes Unitários
Testes UnitáriosTestes Unitários
Testes Unitários
 
2PHP_Metodologia
2PHP_Metodologia2PHP_Metodologia
2PHP_Metodologia
 
Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay
Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDayQuando utilizar Crowdsourcing em Testes | Crowdtest no DevDay
Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay
 

More from Saulo Arruda

MVP: conheça os 2 significados ao criar o seu #cpbr8
MVP: conheça os 2 significados ao criar o seu #cpbr8MVP: conheça os 2 significados ao criar o seu #cpbr8
MVP: conheça os 2 significados ao criar o seu #cpbr8Saulo Arruda
 
Oportunidade para desenvolvedores na era das startups
Oportunidade para desenvolvedores na era das startupsOportunidade para desenvolvedores na era das startups
Oportunidade para desenvolvedores na era das startupsSaulo Arruda
 
Growth Hacking Mobile - BRAPPS 2014
Growth Hacking Mobile - BRAPPS 2014Growth Hacking Mobile - BRAPPS 2014
Growth Hacking Mobile - BRAPPS 2014Saulo Arruda
 
Growth hacking - Jera Retrospectiva
Growth hacking  - Jera RetrospectivaGrowth hacking  - Jera Retrospectiva
Growth hacking - Jera RetrospectivaSaulo Arruda
 
#CPBR7 - Métricas para startups
#CPBR7 - Métricas para startups#CPBR7 - Métricas para startups
#CPBR7 - Métricas para startupsSaulo Arruda
 
StartupFarm métricas
StartupFarm métricasStartupFarm métricas
StartupFarm métricasSaulo Arruda
 
Mande seu chefe pentear macaco
Mande seu chefe pentear macacoMande seu chefe pentear macaco
Mande seu chefe pentear macacoSaulo Arruda
 
Sthart - Desenvolvimento Web e Mobile
Sthart - Desenvolvimento Web e MobileSthart - Desenvolvimento Web e Mobile
Sthart - Desenvolvimento Web e MobileSaulo Arruda
 
Como ganhar dinheiro com aplicativos mobile?
Como ganhar dinheiro com aplicativos mobile?Como ganhar dinheiro com aplicativos mobile?
Como ganhar dinheiro com aplicativos mobile?Saulo Arruda
 
Startups - É programando que se empreende
Startups - É programando que se empreendeStartups - É programando que se empreende
Startups - É programando que se empreendeSaulo Arruda
 
Desenvolvimento iOS - Aula 6
Desenvolvimento iOS - Aula 6Desenvolvimento iOS - Aula 6
Desenvolvimento iOS - Aula 6Saulo Arruda
 
Desenvolvimento iOS - Aula 5
Desenvolvimento iOS - Aula 5Desenvolvimento iOS - Aula 5
Desenvolvimento iOS - Aula 5Saulo Arruda
 
Desenvolvimento iOS - Aula 4
Desenvolvimento iOS - Aula 4Desenvolvimento iOS - Aula 4
Desenvolvimento iOS - Aula 4Saulo Arruda
 
TDC 2012 - Querem me comprar, e agora?
TDC 2012 - Querem me comprar, e agora?TDC 2012 - Querem me comprar, e agora?
TDC 2012 - Querem me comprar, e agora?Saulo Arruda
 
Desenvolvimento iOS - Aula 3
Desenvolvimento iOS - Aula 3Desenvolvimento iOS - Aula 3
Desenvolvimento iOS - Aula 3Saulo Arruda
 
Desenvolvimento iOS - Aula 2
Desenvolvimento iOS - Aula 2Desenvolvimento iOS - Aula 2
Desenvolvimento iOS - Aula 2Saulo Arruda
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Saulo Arruda
 
Empreendedorismo Agil
Empreendedorismo AgilEmpreendedorismo Agil
Empreendedorismo AgilSaulo Arruda
 

More from Saulo Arruda (20)

MVP: conheça os 2 significados ao criar o seu #cpbr8
MVP: conheça os 2 significados ao criar o seu #cpbr8MVP: conheça os 2 significados ao criar o seu #cpbr8
MVP: conheça os 2 significados ao criar o seu #cpbr8
 
Oportunidade para desenvolvedores na era das startups
Oportunidade para desenvolvedores na era das startupsOportunidade para desenvolvedores na era das startups
Oportunidade para desenvolvedores na era das startups
 
Growth Hacking Mobile - BRAPPS 2014
Growth Hacking Mobile - BRAPPS 2014Growth Hacking Mobile - BRAPPS 2014
Growth Hacking Mobile - BRAPPS 2014
 
Growth hacking - Jera Retrospectiva
Growth hacking  - Jera RetrospectivaGrowth hacking  - Jera Retrospectiva
Growth hacking - Jera Retrospectiva
 
#CPBR7 - Métricas para startups
#CPBR7 - Métricas para startups#CPBR7 - Métricas para startups
#CPBR7 - Métricas para startups
 
StartupFarm métricas
StartupFarm métricasStartupFarm métricas
StartupFarm métricas
 
Mande seu chefe pentear macaco
Mande seu chefe pentear macacoMande seu chefe pentear macaco
Mande seu chefe pentear macaco
 
Sthart - Desenvolvimento Web e Mobile
Sthart - Desenvolvimento Web e MobileSthart - Desenvolvimento Web e Mobile
Sthart - Desenvolvimento Web e Mobile
 
Como ganhar dinheiro com aplicativos mobile?
Como ganhar dinheiro com aplicativos mobile?Como ganhar dinheiro com aplicativos mobile?
Como ganhar dinheiro com aplicativos mobile?
 
Startups - É programando que se empreende
Startups - É programando que se empreendeStartups - É programando que se empreende
Startups - É programando que se empreende
 
SCRUM - Aula 2
SCRUM - Aula 2SCRUM - Aula 2
SCRUM - Aula 2
 
SCRUM - Aula1
SCRUM - Aula1SCRUM - Aula1
SCRUM - Aula1
 
Desenvolvimento iOS - Aula 6
Desenvolvimento iOS - Aula 6Desenvolvimento iOS - Aula 6
Desenvolvimento iOS - Aula 6
 
Desenvolvimento iOS - Aula 5
Desenvolvimento iOS - Aula 5Desenvolvimento iOS - Aula 5
Desenvolvimento iOS - Aula 5
 
Desenvolvimento iOS - Aula 4
Desenvolvimento iOS - Aula 4Desenvolvimento iOS - Aula 4
Desenvolvimento iOS - Aula 4
 
TDC 2012 - Querem me comprar, e agora?
TDC 2012 - Querem me comprar, e agora?TDC 2012 - Querem me comprar, e agora?
TDC 2012 - Querem me comprar, e agora?
 
Desenvolvimento iOS - Aula 3
Desenvolvimento iOS - Aula 3Desenvolvimento iOS - Aula 3
Desenvolvimento iOS - Aula 3
 
Desenvolvimento iOS - Aula 2
Desenvolvimento iOS - Aula 2Desenvolvimento iOS - Aula 2
Desenvolvimento iOS - Aula 2
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1
 
Empreendedorismo Agil
Empreendedorismo AgilEmpreendedorismo Agil
Empreendedorismo Agil
 

Cuidando de softwares doentes com testes automatizados

  • 1. Esteróides JEE Cuidando de softwares doentes
  • 2. Apresentação Quem somos nós? • Jefferson Moreira (www.jeffmor.com) • Ciência da Computação / Engenharia de Software OO. • Desenvolvedor e Coordenador da Agence • Desenvolvedor desde 2002 • Com java desde 2003 • Instrutor do SENAC • Coordenador do JUGMS
  • 3. Apresentação Quem somos nós? • Saulo Arruda (http://sauloarruda.eti.br) • Especialista em Melhoria do Processo de Software pela UFLA; • Diretor de TI da Agence Consultoria; • Diretor Pedagógico da Agence Educacional; • 10 anos de experiência em projetos de software; • Coordenador do JUG-MS
  • 4. Agenda Agenda • Diagnóstico • Tratamento (Internação) • Alta 4
  • 5. Diagnóstico Importância • Gerar software funcionando • Confiança no produto • Diagnosticar problemas • Qualidade do software • Redução de riscos 5
  • 6. Diagnóstico Conceitos • Teste: é a atividade de executar um software com o objetivo de revelar falhas • Falha: desvio do comportamento especificado • Erro: origem da falha 6
  • 7. Diagnóstico Conceitos • Validação – Estamos fazendo o sistema certo? – Ponto de vista do usuário 7
  • 8. Diagnóstico Conceitos • Verificação – Estamos fazendo certo o sistema? – Ponto de vista do desenvolvedor 8
  • 9. Diagnóstico Quando eu começo a testar? • Na fase inicial: especificação de requisitos 9
  • 10. Diagnóstico Técnicas de Teste • Caixa Branca 10
  • 11. Diagnóstico Técnicas de Teste • Caixa Preta 11
  • 12. Diagnóstico Técnicas de Teste • Caixa-cinza • Regressão • Não funcionais – Desempenho – Carga – Usabilidade) 12
  • 13. Diagnóstico Fases • Unitário – Evita bug com código mal feito – Confiança no sistema – Alterações sem medo – Testa a falha e o sucesso – Utilização de Mocks – Serve como métrica 13
  • 14. Diagnóstico Fases • Integração – É essencial – Difícil de testar todas as situações. – Massa de Dados – Integração de serviços – Integração != Interface 14
  • 15. Diagnóstico Fases • Funcional – Funcionalidades – Requisitos – Regra de Negócios – Tem tela, mas não é tela. 15
  • 18. Diagnóstico Caso de Teste • Curto • Fácil de ler • Rápido de executar • Auto-explicativo • Redução de risco • Medir Qualidade 18
  • 19. Agenda Agenda • Diagnóstico • Tratamento (Internação) • Alta 19
  • 20. Tratamento “Comecem com esteróides” 20
  • 21. Agenda Estudo de Caso • Aplicação JEE que usa EJB e JPA • Testes unitários e de integração (usando openejb) • Classes base utilitárias para implementação de testes de integração; • Uso de fixtures em arquivos XML; • Projeto de exemplo para uma folha de pagamento de desenvolvedores; 21
  • 22. Ferramentas Ferramentas • JUnit • OpenEJ B • Maven 22
  • 24. Agenda Agenda • Diagnóstico • Tratamento (Internação) • Alta 24
  • 25. Alta Conclusão • Dificuldades com testes: – Massa de dados: resolvemos com a criação de fixtures. Temos projetos com mais de 10.000 registros inseridos por fixtures geradas. – Teste no container: openejb tem se mostrado uma boa solução, sendo muito mais leve para testes de integração que JBoss, Glassfish, etc. – Independência: usar um banco de 25
  • 26. Alta Extensões futuras • Gerador de fixtures a partir de planilhas (estamos testando a versão beta); • Auto-teste a partir de condições pré- estabelecidas (versão alfa); • Integração com JUnitPerf para testes de performance; • Isto é um Pattern ou um Framework? 26
  • 28. Dúvidas Perguntas? • Vocês vão disponibilizar o código- fonte? 27
  • 29. Dúvidas Perguntas? • Vocês vão disponibilizar o código- fonte? – http://esteroides.agence.com.br/ 27
  • 30. Dúvidas Perguntas? • Vocês vão disponibilizar o código- fonte? – http://esteroides.agence.com.br/ • Posso colaborar com essa “idéia”? 27
  • 31. Dúvidas Perguntas? • Vocês vão disponibilizar o código- fonte? – http://esteroides.agence.com.br/ • Posso colaborar com essa “idéia”? – Deve! Quanto mais melhor! 27
  • 32. Dúvidas Perguntas? • Vocês vão disponibilizar o código- fonte? – http://esteroides.agence.com.br/ • Posso colaborar com essa “idéia”? – Deve! Quanto mais melhor! • Vocês já usaram DBUnit? 27
  • 33. Dúvidas Perguntas? • Vocês vão disponibilizar o código- fonte? – http://esteroides.agence.com.br/ • Posso colaborar com essa “idéia”? – Deve! Quanto mais melhor! • Vocês já usaram DBUnit? – Sim, é um saco! 27
  • 34. 28