SlideShare uma empresa Scribd logo
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.

Mais conteúdo relacionado

Mais procurados

Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testes
elliando 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ática
Fabrí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 - MOD1
Fernando Palma
 
Introdução a testes de sofwtare
Introdução a testes de sofwtareIntrodução a testes de sofwtare
Introdução a testes de sofwtare
Fernando 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/Integrados
Giovanni 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 qualidade
rzauza
 
Revisao inspecao artefatos testes estaticos
Revisao inspecao artefatos testes estaticosRevisao inspecao artefatos testes estaticos
Revisao inspecao artefatos testes estaticos
Cristiano 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ção
Sandy 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 Software
Camilo 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 software
Jeremias Araujo
 
Testes Funcionais - Unidade IV
Testes Funcionais - Unidade IVTestes Funcionais - Unidade IV
Testes Funcionais - Unidade IV
João Lourenço
 
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
Felipe de Oliveira, CSM, CSPO
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
Mauricio Cesar Santos da Purificaçã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 Processo
crc1404
 
Qualidade e Teste de Software
Qualidade e Teste de SoftwareQualidade e Teste de Software
Qualidade e Teste de Software
Kamilla Queiroz Xavier
 
Testes Funcionais
Testes FuncionaisTestes Funcionais
Testes Funcionais
Juliana Maria Lopes
 
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
Camilo Ribeiro
 
Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1
Victor Hugo Germano
 

Mais procurados (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
 

Semelhante a Testes de Software & Ferramentas de Testes

Testes e Refatoração
Testes e RefatoraçãoTestes e Refatoração
Testes e Refatoração
Paulo César M Jeveaux
 
Testes
TestesTestes
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
Roberto Espinha
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
elliando 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 POA
Aline Zanin
 
TDD
TDDTDD
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
testedesoftwarepe
 
IC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas DoentesIC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas Doentes
Jefferson 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 Zanin
DevInPF
 
TesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdfTesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdf
Bruno Zolotareff dos Santos
 
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ção
Joeldson 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
 
Aula09_TesteSoftware_Parte1_apremdeeghku
Aula09_TesteSoftware_Parte1_apremdeeghkuAula09_TesteSoftware_Parte1_apremdeeghku
Aula09_TesteSoftware_Parte1_apremdeeghku
MoniqueEstevo2
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdf
HoctairBernardino
 
Perspectivas em teste de software
Perspectivas em teste de softwarePerspectivas em teste de software
Perspectivas em teste de software
Qualister
 
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
Roberto Nunes
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojo
flavio1110
 
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
ALEXANDRELISBADASILV
 

Semelhante a 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
 
Aula09_TesteSoftware_Parte1_apremdeeghku
Aula09_TesteSoftware_Parte1_apremdeeghkuAula09_TesteSoftware_Parte1_apremdeeghku
Aula09_TesteSoftware_Parte1_apremdeeghku
 
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 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
 

Mais 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 plataforma
Paulo 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 fantasia
Paulo 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
 
E-commerce Além dos Sites
E-commerce Além dos SitesE-commerce Além dos Sites
E-commerce Além dos Sites
Paulo César M Jeveaux
 
Controle de versão com GIT
Controle de versão com GITControle de versão com GIT
Controle de versão com GIT
Paulo César M Jeveaux
 
Resenha Rework por Jeveaux
Resenha Rework por JeveauxResenha Rework por Jeveaux
Resenha Rework por Jeveaux
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-dia
Paulo 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 relatos
Paulo César M Jeveaux
 
Desafios no e-commerce brasileiro
Desafios no e-commerce brasileiroDesafios no e-commerce brasileiro
Desafios no e-commerce brasileiro
Paulo 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 SCRUM
Paulo 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 software
Paulo 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 SCRUM
Paulo 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 Search
Paulo César M Jeveaux
 
Palestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnitPalestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnit
Paulo César M Jeveaux
 
Extreme Programming - XP
Extreme Programming - XPExtreme Programming - XP
Extreme Programming - XP
Paulo César M Jeveaux
 
Desenvolvimento Ágil com SCRUM
Desenvolvimento Ágil com SCRUMDesenvolvimento Ágil com SCRUM
Desenvolvimento Ágil com SCRUM
Paulo César M Jeveaux
 
Certificação Digital
Certificação DigitalCertificação Digital
Certificação Digital
Paulo César M Jeveaux
 
AOP - JustJava - 2005
AOP - JustJava - 2005AOP - JustJava - 2005
AOP - JustJava - 2005
Paulo César M Jeveaux
 
AOP - ESJUG - 2005
AOP - ESJUG - 2005AOP - ESJUG - 2005
AOP - ESJUG - 2005
Paulo 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 - 2004
Paulo César M Jeveaux
 

Mais 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
 

Último

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 

Último (8)

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 

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.