SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
Testes de Software
        &
 Ferramentas para
      Testes
Testes de Software
        &
 Ferramentas para
      Testes


             por Paulo César M. Jeveaux
                               30/11/2007
Paulo César M. Jeveaux (Jevô)
• Consultor e Arquiteto de soluções Java
  na Inflor;

• Mantenedor        responsável        do
  PortalJava.com e ESJUG;

• Palestrante-Entusiasta-Evangelista Java;
Agenda
    Introdução
•
    O que são testes?
•
    Cobertura de testes
•
    Você confia no que você faz?
•
    Desenvolvendo orientado a testes
•
    Ferramentas e técnicas de testes
•
Introdução
   Desenvolvimento de software
Introdução
   Desenvolvimento de software
       Falhas de Software
Falhas de Software
• Mais de 1/3 das
  falhas poderiam ser
  evitadas com testes;
 [1]



• Cerca de 50% das
  falhas    só  são
  descobertas   em
  produção; [1]
Introdução
   Desenvolvimento de software
       Falhas de Software
       Falhas custam caro
Falhas custam $$$
Segundo uma pesquisa do Departamento
  de Comércio dos EUA, publicada em
  2002, falhas de software são tão
  comuns e tão danosas que se estima
  que causem um prejuízo anual de mais
  de 60 bilhões de dólares para a
  economia americana. [1], [2]
Introdução
   Desenvolvimento de software
       Falhas de Software
       Falhas custam caro
     Testes não evitam falhas
Introdução
     Desenvolvimento de software
          Falhas de Software
          Falhas custam caro
        Testes não evitam falhas
Testes identificam as falhas antes delas
             acontecerem
O que são testes?
O que são testes?
• Um teste é uma verificação feita sobre
  um código ou fragmento de código para
  garantir que uma determinada entrada
  produza, sempre, uma saída esperada;
O que são testes?
• São pontuais;

• São previsíveis;

• São finitos;

• São (ou deveriam ser) simples;
O que são testes?
• Testes não verificam completamente a
  saída de um programa pois as entradas
  são finitas;

• Testes não são perfeitos para validação,
  mas são a melhor opção para isso;
O que são testes?
          White Box
Caixa branca
• Testes de unidade de código;

• Testam      parte      da      solução;

• São    escritos e mantidos  pelo
  programador e devem estar sempre
  atualizados;
Caixa branca
• Quando construímos um teste de
  unidade, o principal desafio é isolar a
  classe ou trecho de código que está
  sendo testado, para que nenhuma outra
  classe do sistema seja envolvida no
  teste e influencie no resultado
  esperado.
O que são testes?
          White Box
          Black Box
Caixa preta
• Testes funcionais e de aceitação;

• Testes de integração;

• Testam a solução completa;
Cobertura de testes
Cobertura dos testes
                       Resultado esperado
 Trecho alterado
                        com alteração: OK


                       Reflexo da alteração
                             Erro #1

                       Reflexo da alteração
                             Erro #2

                       Reflexo da alteração
                               BUG

                       Reflexo da alteração
                            Inesperado
Cobertura dos testes
Sem cobertura             Com cobertura


• Novo     release    =
  códigos sem testes;
• Não há segurança de
  que as alterações
  não irão impactar
  em outros pontos da
  aplicação;
• Problemas,     muitos
  problemas;
Cobertura dos testes
• Dificilmente consegue-se 100% de
  cobertura de testes, contete-se com
  99%;

• Quanto maior a cobertura dos testes na
  aplicação maior a confiabilidade nas
  alterações e novos recursos;
Cobertura dos testes
• Aplicações cobertas por bons testes
  propiciam:
  – Facilidade de manutenção;
  – Facilidade para inclusão de novos membros
    no time de desenvolvimento;
  – Menos problemas e redução de custos em
    manutenções;
  – Telefone silencioso nas madrugadas!
Testes são necessários
• Você precisa verificar o código, sempre;

• Você precisa garantir que os requisitos
  estão implementados (e corretos);

• Você precisa ter segurança para realizar
  alterações;
Testes são necessários
• Você precisa testar rápido para entregar
  rápido;

• Você aumenta e garante a qualidade da sua
  solução com testes;

• Você precisa ser criativo para explorar o
  máximo possível com seus testes, não use
  testes mentirosos;
Você confia no que faz?
Garanta o que você faz
• Cliente:
  – Isso aqui não está funcionando!


• Programador:
  – Mas como!? Na minha máquina estava
    funcionando até ontem.
Garanta o seu trabalho, seja profissional

Errado!                     Realidade!
• Num              mundo    • O cliente não quer
  capitalizado  não   há      saber se X virou Y. Ele
  tempo para testes;          quer que o problema
                              não aconteça e se
                              acontecer     que  seja
• O cliente não quer
                              corrigido rapidamente;
  saber como é feito, ele
  quer que funcione
                            • Não      se    consegue
                              qualidade             e
                              confiabilidade      sem
                              testes;
[4]
Test-Driven Development
TDD
                   refatore




                   Escreva código
      Escreva um
                     que passe
         Teste
                      no teste
Ferramentas
    Ferramentas de teste de
           software
JUnit
• É um framework altamente eficaz e
  largamente utilizado na criação e
  execução de testes unitários de
  códigos;
Um teste com JUnit

public class HelloWorldTest {
  @Test public void testMultiplication() {
    //Testando se 2*2 = 4
    assertEquals (quot;Multiplicationquot;, 4, 2*2);
  }
}
Selenium
• Ferramenta para realização de testes
  integrados e de aceitação;

• Usado no browser, grava todos os passos
  executados na aplicação diretamente no
  browser e os executa de forma
  automatizada no browser;
Selenium
JMeter
• Propósito principal para testes de carga
  e stress de aplicações;

• Pode ser usado para testes integrados e
  de aceitação;
JMeter
Clover
• Ferramenta para análise de cobertura
  dos testes existem na aplicação;

• Integrado a várias IDEs - Eclipse ;-)

• Existem diversas opções semelhantes:
  JCoverage, Cobertura, etc;
Clover
Dúvidas?
Referências
• [1] - NIST - http://www.nist.gov/public_affairs/releases/n02-
  10.htm
• [2] - ImproveIt - http://www.improveit.com.br/xp/praticas/tdd
• [3] - Caelum - http://blog.caelum.com.br/2006/09/08/voce-
  acredita-no-seu-codigo/
• [4] – Fragmental - Shoes -
  http://blog.fragmental.com.br/2007/10/31/programadores-
  profissionais-escrevem-testes-ponto-final/
• [5] – Marcos Pereira –
  http://marcospereira.wordpress.com/2007/11/27/desenvolvedo
  res-odeiam-testar
• [6] – Wikipedia – http://en.wikipedia.org/wiki/Test-
  driven_development
• [7] - TDD - http://www.testdriven.com
Podem acordar, acabou!
• Obrigado a todos.

• Contatos:
  – www.portaljava.com | www.jeveaux.com

  – jeveaux@portaljava.com | paulo@jeveaux.com
Testes de Software
                   &
            Ferramentas para
                 Testes

Esta apresentação usa a licença :
Creative Commons : de Atribuição/Uso
Não Comercial Compartilhado.

Contenu connexe

Tendances

Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testeselliando dias
 
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
 
Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Fernando Palma
 
Introdução a testes de sofwtare
Introdução a testes de sofwtareIntrodução a testes de sofwtare
Introdução a testes de sofwtareFernando Palma
 
Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Vanilton Pinheiro
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/IntegradosGiovanni Bassi
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidaderzauza
 
Revisao inspecao artefatos testes estaticos
Revisao inspecao artefatos testes estaticosRevisao inspecao artefatos testes estaticos
Revisao inspecao artefatos testes estaticosCristiano Caetano
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoSandy Maciel
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareCamilo Almendra
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Camilo Ribeiro
 
Ferramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareFerramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareJeremias Araujo
 
Testes Funcionais - Unidade IV
Testes Funcionais - Unidade IVTestes Funcionais - Unidade IV
Testes Funcionais - Unidade IVJoão Lourenço
 
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De ProcessoUma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processocrc1404
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwareCamilo Ribeiro
 

Tendances (20)

Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testes
 
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
 
Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1
 
Introdução a testes de sofwtare
Introdução a testes de sofwtareIntrodução a testes de sofwtare
Introdução a testes de sofwtare
 
Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/Integrados
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
 
Revisao inspecao artefatos testes estaticos
Revisao inspecao artefatos testes estaticosRevisao inspecao artefatos testes estaticos
Revisao inspecao artefatos testes estaticos
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade
 
Ferramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareFerramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de software
 
Testes Funcionais - Unidade IV
Testes Funcionais - Unidade IVTestes Funcionais - Unidade IV
Testes Funcionais - Unidade IV
 
Papéis em teste e qualidade de software
Papéis em teste e qualidade de softwarePapéis em teste e qualidade de software
Papéis em teste e qualidade de software
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De ProcessoUma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
 
Qualidade e Teste de Software
Qualidade e Teste de SoftwareQualidade e Teste de Software
Qualidade e Teste de Software
 
Testes Funcionais
Testes FuncionaisTestes Funcionais
Testes Funcionais
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
 
Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1
 

Similaire à Testes de Software & Ferramentas de Testes

Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testeselliando dias
 
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
 
Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POAAline Zanin
 
IC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas DoentesIC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas DoentesJefferson Moreira
 
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninDevInPF
 
Testar é tão fácil que até minha mãe testaria!
Testar é tão fácil que até minha mãe testaria!Testar é tão fácil que até minha mãe testaria!
Testar é tão fácil que até minha mãe testaria!Laís Camargo
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoJoeldson Costa Damasceno
 
Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosVitor Silva
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfHoctairBernardino
 
Perspectivas em teste de software
Perspectivas em teste de softwarePerspectivas em teste de software
Perspectivas em teste de softwareQualister
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoflavio1110
 
Aula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptxAula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptxAlexandreLisboadaSil
 
Aula 3 - Introdução ao Teste.pptx
Aula 3 - Introdução ao Teste.pptxAula 3 - Introdução ao Teste.pptx
Aula 3 - Introdução ao Teste.pptxALEXANDRELISBADASILV
 

Similaire à Testes de Software & Ferramentas de Testes (20)

Testes e Refatoração
Testes e RefatoraçãoTestes e Refatoração
Testes e Refatoração
 
Testes
TestesTestes
Testes
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
 
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...
 
Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POA
 
TDD
TDDTDD
TDD
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
IC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas DoentesIC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas Doentes
 
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
 
TesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdfTesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdf
 
Testar é tão fácil que até minha mãe testaria!
Testar é tão fácil que até minha mãe testaria!Testar é tão fácil que até minha mãe testaria!
Testar é tão fácil que até minha mãe testaria!
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e Validação
 
Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes Unitários
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdf
 
Perspectivas em teste de software
Perspectivas em teste de softwarePerspectivas em teste de software
Perspectivas em teste de software
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojo
 
Aula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptxAula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptx
 
Aula 3 - Introdução ao Teste.pptx
Aula 3 - Introdução ao Teste.pptxAula 3 - Introdução ao Teste.pptx
Aula 3 - Introdução ao Teste.pptx
 

Plus de Paulo César M Jeveaux

Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataformaWine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataformaPaulo César M Jeveaux
 
Empreendedorismo além do mundo da fantasia
Empreendedorismo além do mundo da fantasiaEmpreendedorismo além do mundo da fantasia
Empreendedorismo além do mundo da fantasiaPaulo César M Jeveaux
 
Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...
Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...
Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...Paulo César M Jeveaux
 
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-diaCase Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-diaPaulo César M Jeveaux
 
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatosSCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatosPaulo César M Jeveaux
 
Desenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUMDesenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUMPaulo César M Jeveaux
 
Negociação de contratos de projetos de software
Negociação de contratos de projetos de softwareNegociação de contratos de projetos de software
Negociação de contratos de projetos de softwarePaulo César M Jeveaux
 
Desenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUMDesenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUMPaulo César M Jeveaux
 
Turbinando sua aplicação com Lucene, Solr e Hibernate Search
Turbinando sua aplicação com Lucene, Solr e Hibernate SearchTurbinando sua aplicação com Lucene, Solr e Hibernate Search
Turbinando sua aplicação com Lucene, Solr e Hibernate SearchPaulo César M Jeveaux
 
Comunidades Virtuais Java - Conexão Java - 2004
Comunidades Virtuais Java - Conexão Java - 2004Comunidades Virtuais Java - Conexão Java - 2004
Comunidades Virtuais Java - Conexão Java - 2004Paulo César M Jeveaux
 

Plus de Paulo César M Jeveaux (20)

Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataformaWine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
 
Empreendedorismo além do mundo da fantasia
Empreendedorismo além do mundo da fantasiaEmpreendedorismo além do mundo da fantasia
Empreendedorismo além do mundo da fantasia
 
Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...
Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...
Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...
 
E-commerce Além dos Sites
E-commerce Além dos SitesE-commerce Além dos Sites
E-commerce Além dos Sites
 
Controle de versão com GIT
Controle de versão com GITControle de versão com GIT
Controle de versão com GIT
 
Resenha Rework por Jeveaux
Resenha Rework por JeveauxResenha Rework por Jeveaux
Resenha Rework por Jeveaux
 
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-diaCase Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
 
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatosSCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
 
Desafios no e-commerce brasileiro
Desafios no e-commerce brasileiroDesafios no e-commerce brasileiro
Desafios no e-commerce brasileiro
 
Desenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUMDesenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUM
 
Negociação de contratos de projetos de software
Negociação de contratos de projetos de softwareNegociação de contratos de projetos de software
Negociação de contratos de projetos de software
 
Desenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUMDesenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUM
 
Turbinando sua aplicação com Lucene, Solr e Hibernate Search
Turbinando sua aplicação com Lucene, Solr e Hibernate SearchTurbinando sua aplicação com Lucene, Solr e Hibernate Search
Turbinando sua aplicação com Lucene, Solr e Hibernate Search
 
Palestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnitPalestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnit
 
Extreme Programming - XP
Extreme Programming - XPExtreme Programming - XP
Extreme Programming - XP
 
Desenvolvimento Ágil com SCRUM
Desenvolvimento Ágil com SCRUMDesenvolvimento Ágil com SCRUM
Desenvolvimento Ágil com SCRUM
 
Certificação Digital
Certificação DigitalCertificação Digital
Certificação Digital
 
AOP - JustJava - 2005
AOP - JustJava - 2005AOP - JustJava - 2005
AOP - JustJava - 2005
 
AOP - ESJUG - 2005
AOP - ESJUG - 2005AOP - ESJUG - 2005
AOP - ESJUG - 2005
 
Comunidades Virtuais Java - Conexão Java - 2004
Comunidades Virtuais Java - Conexão Java - 2004Comunidades Virtuais Java - Conexão Java - 2004
Comunidades Virtuais Java - Conexão Java - 2004
 

Testes de Software & Ferramentas de Testes

  • 1. Testes de Software & Ferramentas para Testes
  • 2. Testes de Software & Ferramentas para Testes por Paulo César M. Jeveaux 30/11/2007
  • 3. Paulo César M. Jeveaux (Jevô) • Consultor e Arquiteto de soluções Java na Inflor; • Mantenedor responsável do PortalJava.com e ESJUG; • Palestrante-Entusiasta-Evangelista Java;
  • 4. Agenda Introdução • O que são testes? • Cobertura de testes • Você confia no que você faz? • Desenvolvendo orientado a testes • Ferramentas e técnicas de testes •
  • 5. Introdução Desenvolvimento de software
  • 6.
  • 7. Introdução Desenvolvimento de software Falhas de Software
  • 8. Falhas de Software • Mais de 1/3 das falhas poderiam ser evitadas com testes; [1] • Cerca de 50% das falhas só são descobertas em produção; [1]
  • 9. Introdução Desenvolvimento de software Falhas de Software Falhas custam caro
  • 10. Falhas custam $$$ Segundo uma pesquisa do Departamento de Comércio dos EUA, publicada em 2002, falhas de software são tão comuns e tão danosas que se estima que causem um prejuízo anual de mais de 60 bilhões de dólares para a economia americana. [1], [2]
  • 11. Introdução Desenvolvimento de software Falhas de Software Falhas custam caro Testes não evitam falhas
  • 12.
  • 13. Introdução Desenvolvimento de software Falhas de Software Falhas custam caro Testes não evitam falhas Testes identificam as falhas antes delas acontecerem
  • 14.
  • 15. O que são testes?
  • 16. O que são testes? • Um teste é uma verificação feita sobre um código ou fragmento de código para garantir que uma determinada entrada produza, sempre, uma saída esperada;
  • 17. O que são testes? • São pontuais; • São previsíveis; • São finitos; • São (ou deveriam ser) simples;
  • 18. O que são testes? • Testes não verificam completamente a saída de um programa pois as entradas são finitas; • Testes não são perfeitos para validação, mas são a melhor opção para isso;
  • 19. O que são testes? White Box
  • 20. Caixa branca • Testes de unidade de código; • Testam parte da solução; • São escritos e mantidos pelo programador e devem estar sempre atualizados;
  • 21. Caixa branca • Quando construímos um teste de unidade, o principal desafio é isolar a classe ou trecho de código que está sendo testado, para que nenhuma outra classe do sistema seja envolvida no teste e influencie no resultado esperado.
  • 22. O que são testes? White Box Black Box
  • 23. Caixa preta • Testes funcionais e de aceitação; • Testes de integração; • Testam a solução completa;
  • 25. Cobertura dos testes Resultado esperado Trecho alterado com alteração: OK Reflexo da alteração Erro #1 Reflexo da alteração Erro #2 Reflexo da alteração BUG Reflexo da alteração Inesperado
  • 26. Cobertura dos testes Sem cobertura Com cobertura • Novo release = códigos sem testes; • Não há segurança de que as alterações não irão impactar em outros pontos da aplicação; • Problemas, muitos problemas;
  • 27. Cobertura dos testes • Dificilmente consegue-se 100% de cobertura de testes, contete-se com 99%; • Quanto maior a cobertura dos testes na aplicação maior a confiabilidade nas alterações e novos recursos;
  • 28. Cobertura dos testes • Aplicações cobertas por bons testes propiciam: – Facilidade de manutenção; – Facilidade para inclusão de novos membros no time de desenvolvimento; – Menos problemas e redução de custos em manutenções; – Telefone silencioso nas madrugadas!
  • 29. Testes são necessários • Você precisa verificar o código, sempre; • Você precisa garantir que os requisitos estão implementados (e corretos); • Você precisa ter segurança para realizar alterações;
  • 30. Testes são necessários • Você precisa testar rápido para entregar rápido; • Você aumenta e garante a qualidade da sua solução com testes; • Você precisa ser criativo para explorar o máximo possível com seus testes, não use testes mentirosos;
  • 31. Você confia no que faz?
  • 32.
  • 33. Garanta o que você faz • Cliente: – Isso aqui não está funcionando! • Programador: – Mas como!? Na minha máquina estava funcionando até ontem.
  • 34. Garanta o seu trabalho, seja profissional Errado! Realidade! • Num mundo • O cliente não quer capitalizado não há saber se X virou Y. Ele tempo para testes; quer que o problema não aconteça e se acontecer que seja • O cliente não quer corrigido rapidamente; saber como é feito, ele quer que funcione • Não se consegue qualidade e confiabilidade sem testes; [4]
  • 36. TDD refatore Escreva código Escreva um que passe Teste no teste
  • 37. Ferramentas Ferramentas de teste de software
  • 38. JUnit • É um framework altamente eficaz e largamente utilizado na criação e execução de testes unitários de códigos;
  • 39. Um teste com JUnit public class HelloWorldTest { @Test public void testMultiplication() { //Testando se 2*2 = 4 assertEquals (quot;Multiplicationquot;, 4, 2*2); } }
  • 40. Selenium • Ferramenta para realização de testes integrados e de aceitação; • Usado no browser, grava todos os passos executados na aplicação diretamente no browser e os executa de forma automatizada no browser;
  • 42. JMeter • Propósito principal para testes de carga e stress de aplicações; • Pode ser usado para testes integrados e de aceitação;
  • 44. Clover • Ferramenta para análise de cobertura dos testes existem na aplicação; • Integrado a várias IDEs - Eclipse ;-) • Existem diversas opções semelhantes: JCoverage, Cobertura, etc;
  • 45.
  • 48. Referências • [1] - NIST - http://www.nist.gov/public_affairs/releases/n02- 10.htm • [2] - ImproveIt - http://www.improveit.com.br/xp/praticas/tdd • [3] - Caelum - http://blog.caelum.com.br/2006/09/08/voce- acredita-no-seu-codigo/ • [4] – Fragmental - Shoes - http://blog.fragmental.com.br/2007/10/31/programadores- profissionais-escrevem-testes-ponto-final/ • [5] – Marcos Pereira – http://marcospereira.wordpress.com/2007/11/27/desenvolvedo res-odeiam-testar • [6] – Wikipedia – http://en.wikipedia.org/wiki/Test- driven_development • [7] - TDD - http://www.testdriven.com
  • 49. Podem acordar, acabou! • Obrigado a todos. • Contatos: – www.portaljava.com | www.jeveaux.com – jeveaux@portaljava.com | paulo@jeveaux.com
  • 50. Testes de Software & Ferramentas para Testes Esta apresentação usa a licença : Creative Commons : de Atribuição/Uso Não Comercial Compartilhado.