Automacao testes automatizados

  • 1,094 views
Uploaded on

automacao, testes, test, automation

automacao, testes, test, automation

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
1,094
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
1
Comments
3
Likes
6

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. (48) 3285 5615 / 9645 5506 contato@qualister.com.br•  Terceirização de profissionais•  Consultoria de teste•  Avaliação de usabilidade Automação  de  •  Automação de testes•  Testes de performance testes  •  Treinamentos www.qualister.com.br
  • 2. Quer saber mais? Estes  são  apenas  alguns  slides  do  curso  de   automação  de  testes  com  TestComplete  e   outras  ferramentas  oferecido  pela  Qualister.       Para  maiores  informações  visite  nosso  site:     h?p://www.qualister.com.br/cursos         www.qualister.com.br
  • 3. Direitos autorais Importante qualquer parte –  É proibida a có pia e reprodução de ntação incluindo, mas do co nteúdo desta aprese las. agens, gráficos e tabe não limitado a, textos, im ida pelas leis de Esta ap resentação é proteg Cristiano Caetano Copyright e são propriedade de . e Treinamento LTDA e Qualister Consultoria r, copiar, guardar em –  Não é permitido modifica alugar, vender ou banc o de dados público, sta apresentação, republic ar qualquer parte de o explícita do autor. sem prévia permissã o deste material, –  Quando ho uver permissão de us áfica conforme as é obrigatória a referência bibliogr normas vigentes.www.qualister.com.br
  • 4. Instrutor Cristiano Caetano Email: cristiano.caetano@qualister.com.br Apresentações: slideshare.net/cristianocaetano Blog: cristianocaetano.wordpress.com É certificado CBTS pela ALATS. Diretor técnico da Qualister com mais de 10 anos de experiência, já trabalhou na área de qualidade e teste de software para grandes empresas como Zero G, DELL e HP Invent. É colunista na área de Teste e Qualidade de software do site linhadecodigo.com.br e autor dos livros "CVS: Controle de Versões e Desenvolvimento Colaborativo de Software" e "Automação e Gerenciamento de Testes: Aumentando a Produtividade com as Principais Soluções Open Source e Gratuitas". Participante ativo da comunidade de teste de software brasileira, é o criador e mantenedor do portal TestExpert: A sua comunidade gratuita de teste e qualidade de software (www.testexpert.com.br).www.qualister.com.br
  • 5. Sobre a Qualister•  Fundação: 2007.•  Sobre a Qualister: A Qualister é uma empresa nacional, constituída a partir da união de profissionais qualificados e certificados na área de testes e qualidade de software, com o objetivo de integrar, implementar e implantar soluções com base nas melhores práticas do mercado e normas internacionais.•  Colaboradores: A Qualister é composta por colaboradores pós-graduados e certificados na área de testes (CBTS, CSTE) com larga experiência na indústria de Tecnologia da Informação.•  Área de atuação: A Qualister é uma empresa especializada em serviços de qualidade e teste de software. Tem como linhas de atuação consultoria em teste/ qualidade de software, outsourcing (terceirização dos serviços através da alocação de profissionais) e treinamentos. www.qualister.com.br
  • 6. Parcerias internacionais   Soluções para automação, profilling e gestão de testes             Soluções para testes de performance           Soluções de apoio a avaliação de usabilidade      www.qualister.com.br
  • 7. Twitter twitter.com/c_caetanowww.qualister.com.br
  • 8. Tópico •  Introduçãowww.qualister.com.br
  • 9. Progressão X RegressãoIEEE Std 610.12-1990 / Glossário padrão de termos utilizados em teste de software:International Software Testing Qualification Board www.qualister.com.br
  • 10. Smoke testIEEE Std 610.12-1990 / Glossário padrão de termos utilizados em teste de software:International Software Testing Qualification Boardwww.qualister.com.br
  • 11. Tipos de ferramentas de automaçãoApesar  de  não  exisEr  uma  categorização  amplamente  difundida  dos  Epos  de  ferramentas  de  teste,  a  experiência  tem  mostrado  elas  são  normalmente  agrupadas  em  7  áreas  disEntas:   Guide to the CSTE Common Body of Knowledge. QAI, 2006 www.qualister.com.br
  • 12. Panorama da automação de testes nas empresas Evaluating Functional Testing Solutions: The Forrester Wave™ Q2 2006www.qualister.com.br
  • 13. Automação de testes e execução Al ta vel ocidade d de testes o fundidade Alta amp litude e pr ível Repetit to humano Pouco e nvolvimen n sistentes Res ultados cowww.qualister.com.br
  • 14. Manual X automação de testes Ma nual Auto mação de testeswww.qualister.com.br
  • 15. Tópico •  Mitos e desafios da automação de testeswww.qualister.com.br
  • 16. Mitoswww.qualister.com.br
  • 17. Mitos Testes   automa.zados   vão  reduzir  a   quan.dade  de   defeitos   Uma  ferramenta  de   testes   automa.zados  é  a   Para    reduzir  a   solução  de  todos  os   quan.dade  de   problemas  de   defeitos  devo   qualidade   apenas    melhorar    a   eficiência  e  eficácia   da  equipe  de  testes  www.qualister.com.br
  • 18. Mitos Testabili-­‐oquê?   Você  quer  dizer  que   para  criar  testes   automa.zados  será   necessário  modificar  o   Para  o  teste   sistema?   automa.zado     funcionar  eu  tenho   que  mudar  todos  os   Eu  preciso  seguir  padrões?   Grids  de  todas  as   Eu  preciso  dar  nomes  aos   telas?   componentes  da  tela?  Eu   preciso  colocar  nomes   organizados  nas  colunas   dos  Grids?  Eu  preciso   exibir  mensagens  de  erros   intui.vas  ao  invés  de  erros   em  inglês?  www.qualister.com.br
  • 19. Mitos Eu  não  sei  programar,   não  entendo  de  SQL  e   não  conheço  o   negócio  do  sistema   Eu  sou  o   programador,   suporte  técnico,   Eu  não  entendo   DBA,  analista,   nada  de  testes   vendedor,  moça  do   cafezinho,  etc  que   não  me  dei  bem  na   minha  função  então   virei  testador  www.qualister.com.br
  • 20. Desafios da automação de testes•  A automação de testes é a solução dos problemas de qualidade•  Supervalorização das ferramentas•  A ferramenta de automação de testes substitui o testador•  Automatizar testes é uma tarefa rápida e fácil•  Profissionais desqualificados e com treinamento inadequado•  Uso incorreto e subutilização das ferramentas•  Falso senso de segurança•  Não saber o que testar•  Carência de testes sob a perspectiva do código, framework, API, etc•  Mudanças freqüentes na interface gráfica•  Falta de testabilidade no software•  Infra-estrutura inadequada•  Massa de dados inconsistente•  Expectativa de que o retorno de investimento da automação seja no curto prazo www.qualister.com.br
  • 21. Desafios da automação de testes•  A automação de testes é a solução dos problemas de qualidadewww.qualister.com.br
  • 22. Desafios da automação de testes•  Supervalorização das ferramentaswww.qualister.com.br
  • 23. Desafios da automação de testes•  A ferramenta de automação de testes substitui o testador –  Nem todos os testes devem ser automatizados –  A automação de testes libera a equipe de testes para a realização de testes mais complexos que exigem um ser humano ou testes específicos (usabilidade, segurança, etc)www.qualister.com.br
  • 24. Desafios da automação de testes•  Automatizar testes é uma tarefa rápida e fácil Automação de testes = Programação de testeswww.qualister.com.br
  • 25. Desafios da automação de testes•  Profissionais desqualificados e com treinamento inadequado –  Senhores empresários, parem de contratar estagiários de agrimensura/ agronomia/ administração/ moda/design para atuarem como automatizadores www.qualister.com.br
  • 26. Desafios da automação de testes•  Uso incorreto e subutilização das ferramentaswww.qualister.com.br
  • 27. Desafios da automação de testes•  Falso senso de segurança –  Os testes automatizados são a única abordagem de testes –  Inversão de prioridades (usar a automação para testar defeitos que podem ser prevenidos em fases anteriores)www.qualister.com.br
  • 28. Desafios da automação de testes•  Não saber o que testarwww.qualister.com.br
  • 29. Desafios da automação de testes•  Carência de testes sob a perspectiva do código, framework, API, etcwww.qualister.com.br
  • 30. Desafios da automação de testes•  Mudanças freqüentes na interface gráficawww.qualister.com.br
  • 31. Desafios da automação de testes•  Falta de testabilidade no software –  Objetos com Id’s e nomes dinâmicos –  Objetos e componentes que não seguem o padrão da plataforma –  Objetos e componentes que escondem propriedades e métodos relevanteswww.qualister.com.br
  • 32. Desafios da automação de testes•  Infra-estrutura inadequada –  Computadores de alto desempenho –  Computadores dedicados e isolados –  Ambiente similar ao de produçãowww.qualister.com.br
  • 33. Desafios da automação de testes•  Massa de dados inconsistente –  A automação de testes é um tipo de teste que exige ambiente/dados rigorosamente controlado. A automação não é adaptativa, flexível, exploratória. –  Massa de dados consistente qualitativa e quantitativamente para satisfazer as pré-condições dos testes automatizados –  Procedimentos automatizados para restaurar a massa de dados ao estado “conhecido” após a execução dos testes www.qualister.com.br
  • 34. Desafios da automação de testes•  Expectativa de que o retorno de investimento da automação seja no curto prazowww.qualister.com.br Adaptado de DONEGAN, Paula, et al. Automação de Testes Sistêmicos Funcionais. Instituto Atlântico.
  • 35. Tópico •  Boas práticaswww.qualister.com.br
  • 36. Integração contínua1.  Independência do ambiente do desenvolvimento2.  Freqüência nas integrações3.  Automação de processos manuais4.  Simplicidade na geração de versões 36   www.qualister.com.br
  • 37. Características dos testes automatizadosConciso: os testes automatizados devem ser tão simples quanto possível, mas não simplesdemais;Explícito: os testes automatizados relatam os desvios por meio de relatórios explicitamente,sem a necessidade de interpretação humana;Repetível: os testes automatizados podem ser executados quantas vezes forem necessáriassem a intervenção humana;Robusto: os testes automatizados produzem os mesmos resultados consistentemente e nãosão afetados por modificações externas ou no seu ambiente;Necessário: os testes automatizados tem o objetivo de identificar desvios entre o que foiespecificado e o que desenvolvido;Clareza/Manutenção: as instruções codificadas nos testes automatizados devem ser claras efáceis de entender;Eficiente: os testes automatizados devem ter um desempenho satisfatório;Independente: os testes automatizados devem satisfazer as suas próprias precondições edevem permitir a sua execução em qualquer ordem de maneira independente;Rastreável: os testes automatizados devem ser rastreáveis (a partir dos requisitos de origeme demais níveis). Adaptado de "The Test Automation Manifesto" www.qualister.com.br
  • 38. Testes candidatoswww.qualister.com.br
  • 39. Testes candidatoswww.qualister.com.br
  • 40. Testes candidatoswww.qualister.com.br
  • 41. Métricas e indicadores1.  Tempo gasto para a criação de um script;2.  Tempo gasto em manutenção;3.  Tempo gasto na execução em relação aos testes manuais (eficiência);4.  Densidade de defeitos revelados por script de teste (eficácia);5.  Vazamento de defeitos por script de teste;6.  Quantidade de defeitos nos scripts;7.  Cobertura de requisitos;8.  Cobertura de código. DONEGAN, Paula, et al. Automação de Testes Sistêmicos Funcionais. Instituto Atlântico. www.qualister.com.br
  • 42. Tópico •  Por onde começar?www.qualister.com.br
  • 43. Por onde começar?www.qualister.com.br
  • 44. Camadas•  Testando camadas diferenteswww.qualister.com.br
  • 45. Testando em camadas diferentes•  Testes em todas as camadas da arquitetura (de dentro para fora e de fora para dentro) Interface gráfica Códigowww.qualister.com.br
  • 46. Automação de testes Interface   Enfoque  no   negócio  via   TestComplete   QTP   Gráfica   - Custo + Interface  gráfica   Código   Testes  unitários   xUnit   Adaptado de: http://www.slideshare.net/dwhelan/agile-testing-and-the-role-of-the-agile-testerwww.qualister.com.br
  • 47. Testando em camadas diferentes: Testes unitários Classe     Setup     Método(a,  b,  c):  d   Exercise/Verify   Mocks     Teardown               http://xunitpatterns.com/Four%20Phase%20Test.htmlwww.qualister.com.br
  • 48. Testando em camadas diferentes: Testes unitárioswww.qualister.com.br
  • 49. Testando em camadas diferentes: Testes unitárioswww.qualister.com.br
  • 50. Testes unitários: Análise de cobertura de código IEEE Std 610.12-1990 / Glossário padrão de termos utilizados em teste de software: International Software Testing Qualification Boardwww.qualister.com.br
  • 51. Testando em camadas diferentes: Interface gráfica•  Baseado em coordenadas•  Record/Playback com reconhecimento de objetos•  Record/Playback usando DDT (Data-driven test)•  Keyword-Driven Tests•  Behavior-Driven Tests www.qualister.com.br
  • 52. Baseado em coordenadaswww.qualister.com.br
  • 53. Record/Playback com reconhecimento de objetoswww.qualister.com.br
  • 54. Record/Playback usando DDT (Data-driven test)www.qualister.com.br
  • 55. Keyword-Driven Testswww.qualister.com.br
  • 56. Behavior Driven Tests: Pyccuracy –  Dado que (Given) •  Usado para determinar o estado do sistema antes da execução do teste –  Quando (When) •  Usado para descrever as ações/interações com o sistema (passos do teste) –  Então (Then) •  Usado para verificar o resultado esperado –  E (And)/Mas (But) http://github.com/heynemann/pyccuracywww.qualister.com.br
  • 57. Behavior Driven Tests: Pyccuracy http://github.com/heynemann/pyccuracywww.qualister.com.br
  • 58. Tópico •  Você está pronto para a automação de testes?www.qualister.com.br
  • 59. Você está pronto para automação de testes? - Maturidade do processo de testes + - Experiência do time de testes em automação +www.qualister.com.br
  • 60. Checklist: Pré-requisitos para automação de testes•  Patrocínio –  Existem patrocínio e apoio da alta gerência ? –  Existe um orçamento disponível para a automação de testes ? –  Existe a possibilidade de criar uma prova de conceito para determinar a ferramenta mais adequada?•  Capacitação –  Existem profissionais capacitados no time de testes ? –  Existe a possibilidade de treinar os profissionais do time? –  Existe a possibilidade de contratar um profissional capacitado? –  Existe a possibilidade de contratar uma consultoria especializada?•  Processo –  O processo de testes da organização é maduro o suficiente? –  Os casos de testes manuais são formais? –  É possível criar um grupo ou comitê para definir as políticas e diretrizes da automação de testes ? –  A automação de testes pode ser tratada como um projeto, com fases, atividades, papéis, cronograma e orçamento independentes? –  A automação de testes pode ser integrada ao ciclo de vida de desenvolvimento de software?•  Infra-estrutura –  Existe orçamento para a compra de hardware/dispositivos? –  Existe a possibilidade para construção de drives/stubs/simuladores? –  O ambiente é isolado, controlado e similar ao ambiente de produção? –  É possível criar uma massa de dados repetível e consistente? www.qualister.com.br
  • 61. Checklist: Critérios para escolher a ferramenta ideal•  Facilidade de uso•  Manuais claros com informações úteis•  Suporte técnico e treinamento•  Integração com outras ferramentas (Gestão de teste e defeitos, Rastreabilidade)•  Possibilidade de automatizar múltiplas tecnologias(Java, .NET, WEB, Delphi, etc)•  Linguagem de script robusta•  Recusos de debug (depuração de scripts)•  Suporte para a execução em múltiplas plataformas (Windows, Linux, Unix, Mac)•  Suporte para a execução em múltiplos navegadores (IE, FF, Safari, etc)•  Reconhecimento de objetos e as propriedades dos objetos•  Criação de pontos de verificação para validar os objetos e propriedades dos objetos•  Recursos para comparação de arquivos (*.txt, *.pdf, etc)•  Recursos para comparação de áreas da tela com imagens pré-definidas•  Recurso para acesso a banco de dados e SQL (via ODBC, etc)•  Recursos para criação de teste dirigidos a dados (Data-Driven)•  Execução dos testes distribuídas em múltiplos computadores simultâneos•  Geração de relatórios detalhados com o resultado da execução dos testes www.qualister.com.br
  • 62. Níveis de maturidade em automação de testesInspirado em: KRAUSE Mitchel H. A Maturity Model for Automated Software Testing.Medical Device & Diagnostic Industry Magazine. Dez 1994. www.qualister.com.br
  • 63. Níveis de maturidade em automação de testesNível  1:  Automação  acidental    Neste  nível,  algumas  iniciaEvas  individuais  baseadas  na  tentaEva  e  erro  e  sem  suporte  ou  apoio  da  alta  gerência  são  iniciadas  acidentalmente  em  virtude  de  uma  alta  demanda  de  testes  regressivos.  A  automação  de  alguns  testes  é  iniciada  sem  nenhum  planejamento,  sem  o  conhecimento  dos  paradigmas,  Epos,  técnicas  e  melhores  práEcas  da  automação  de  testes.  Não  existe  uma  ferramenta  insEtucionalizada  na  organização  e  os  profissionais  não  são  capacitados  nem  dominam  as  ferramentas  que  são  uElizadas.  O  código  não  é  armazenado  sob  o  controle  de  versões  e  o  código  não  é  projetado  para  ser  reuElizado  (código  spaghe]).  www.qualister.com.br
  • 64. Níveis de maturidade em automação de testesNível  2:  Automação  proposital    Neste  nível,  a  alta  gerência  percebe  que  a  automação  de  testes  é  uma  alternaEva  para  aumentar  a  cobertura  e  a  profundidade  dos  testes.  A  alta  gerência  suporta  e  apóia  uma  iniciaEva  de  introduzir  a  automação  de  testes.  No  entanto,  a  automação  de  testes  ainda  é  considerada  como  mais  uma  aEvidade  de  teste  de  so^ware  e  não  está  formalmente  integrada  ao  ciclo  de  vida  de  desenvolvimento.  É  realizada  uma  prova  de  conceito  (ou  projeto  piloto)  para  determinar  qual  ferramenta  atende  as  necessidades  da  organização.  Uma  consultoria  é  contratada  para  disseminar  as  melhores  práEcas  da  automação  de  testes  e  capacitar  os  profissionais.  A  automação  de  alguns  testes  é  iniciada  por  meio  de  critérios  e  planejamento  rudimentares.  A  metodologia,  processo,  diretrizes,  padrões  e  procedimentos  estão  sendo  criados  e  aprimorados.   www.qualister.com.br
  • 65. Níveis de maturidade em automação de testesNível  3:  Automação  formal    Neste  nível  a  ferramenta,  metodologia,  processo,  diretrizes,  padrões  e  procedimentos  estão  estabelecidos  e  insEtucionalizados  na  organização.  A  automação  de  testes  é  realizada  em  todos  os  níveis  de  testes  (Unidade,  Integração,  Sistema  e  Aceitação).  A  automação  de  testes  é  tratada  como  um  projeto,  com  fases,  aEvidades,  papéis,  cronograma  e  orçamento  independentes.  A  automação  de  testes  é  planejada,  esEmada  e  controlada  formalmente.  A  automação  de  testes  é  integrada  ao  ciclo  de  vida  de  desenvolvimento  de  so^ware  e,  quando  é  necessário,  são  adicionados  recursos  de  testabilidade  no  sistema  para  facilitar  a  automação.    Os  profissionais  estão  capacitados  e  moEvados.    O  código  é  projetado  para  a  reuElização  e  está  sob  o  controle  de  versões.   www.qualister.com.br
  • 66. Níveis de maturidade em automação de testesNível  4:  Automação  formal  em  o.mização    Neste  nível,  existe  um  grupo  ou  comitê  que  define,  distribui  e  suporta  os  procedimentos,  políEcas  e  diretrizes  da  automação  de  testes.  As  políEcas  definidas  por  esse  comitê  são  colocadas  em  práEca  e  revisadas  periodicamente.  Os  testes  automaEzados  são  revisados  por  meio  de  técnicas  formais  de  revisão.  Uma  políEca  e  metodologia  de  medição  são  definidas  com  o  objeEvo  de  idenEficar,  coletar  e  analisar  métricas  relacionadas  à  eficiência  e  eficácia  da  automação  de  testes,  bem  como,  propor  ações  de  melhoria.   www.qualister.com.br
  • 67. Processo de automação de testesATLM  –  ‫  ‏‬The  Automated  TesEng  Life-­‐cycle  Methodology     Adaptado de "Automated Software Testing", Elfriede Dustin, et all, Addison www.qualister.com.br Wesley Longman, Inc. July 1999
  • 68. Processo de automação de testes1.  Decidir  automa.zar  os  testes  Esta  fase  ocorre  quando  a  empresa  decide  automaEzar  os  testes.  A  aEvidade  principal  desta  fase  é  estudar  o  retorno  de  invesEmento,  os  paradigmas  e  Epos  de  testes  existentes  para  evitar  falsas  expectaEvas  em  relação  à  automação  de  testes.  Suposições  errôneas  são  o  resultado  da  falta  de  conhecimento  dos  benefcios  e  limitações  de  um  projeto  de  automação  de  testes.  Esta  fase  também  tem  o  objeEvo  de  garanEr  o  patrocínio  e  compromeEmento  da  alta  gerência.    2.  Aquisição  de  uma  ferramenta  de  automação  de  testes  Nesta  fase  serão  definidos  os  critérios  e  o  processo  que  será  uElizado  para  a  aquisição  da  ferramenta.  Uma  prova  de  conceito  deverá  ser  conduzida  para  demonstrar  os  benefcios,  limitações  e  restrições  da  ferramenta.    3.  Introdução  da  automação  de  testes  na  organização  Nesta  fase  serão  conduzidos  os  primeiros,  diretrizes,  procedimentos  e  melhores  práEcas  que  serão  adotadas  ao  longo  das  aEvidades  de  automação  de  testes.  passos  para  a  introdução  da  automação  de  testes.  Um  dos  passos  principais  desta  fase  é  a  modificação  do  processo  de  teste  de  so^ware  estabelecido  na  organização  para  suportar  as  aEvidades  de  automação  de  testes.     www.qualister.com.br
  • 69. Processo de automação de testes4.  Planejamento,  projeto  e  desenvolvimento  dos  testes  automa.zados  Nesta  fase  ocorre  o  planejamento  projeto  e  desenvolvimento  dos  testes  automaEzados  de  um  projeto  real  da  organização.  Todas  as  aEvidades  desta  fase  devem  seguir  os  processos  e  diretrizes  insEtucionalizados.  A  automação  de  testes  é  uma  combinação  entre  teste  e  desenvolvimento  de  so^ware.  Dessa  forma,  a  automação  de  testes  deve  ser  encarada  como  um  projeto  com  um  ciclo  de  vida  e  caracterísEcas  próprias,  ou  seja,  exige  um  planejamento  detalhado,  assim  como,  aEvidades  de  projeto,  desenvolvimento  e  testes,  tal  qual  o  desenvolvimento  de  um  so^ware  convencional.    5.  Execução  e  controle  da  automação  de  testes  Nesta  fase  os  testes  automaEzados  desenvolvidos  são  executados  no  ambiente  de  automação  pretendido.  As  métricas  são  coletadas  para  o  controle,  tais  como  indicadores  de  progresso,  cobertura,  eficiência,  entre  outros.    6.  Revisão  e  melhoria  do  processo  Nesta  fase  diversas  aEvidades  de  avaliação  são  conduzidas  com  o  objeEvo  de  implementar  a    melhoria  do  processo  de  automação  de  testes  com  base  nas  métricas  e  nas  lições  aprendidas  ao  longo  do  projeto. www.qualister.com.br
  • 70. Quer saber mais? Estes  são  apenas  alguns  slides  do  curso  de   automação  de  testes  com  TestComplete  e   outras  ferramentas  oferecido  pela  Qualister.       Para  maiores  informações  visite  nosso  site:     h?p://www.qualister.com.br/cursos         www.qualister.com.br
  • 71. Dúvidas?•  Contato: –  Email: cristiano.caetano@qualister.com.brwww.qualister.com.br