Ctai Teste De Software Aula 2

17,348
-1

Published on

Mais uma aula no SENAI CTAI SC

Quando a agilidade alcança os testes de software

Published in: Technology, Education

Ctai Teste De Software Aula 2

  1. 1. Teste de Software Victor Hugo Germano Aula - 02 CTAI SENAISC
  2. 2. Victor Hugo Germano http://malditacomedia.blogspot.com
  3. 3. Retrospectiva
  4. 4. Por que testar?
  5. 5. Unitários
  6. 6. Unitários Transição de Estado
  7. 7. Unitários Integração Transição de Estado
  8. 8. Unitários Integração Transição de Estado Análise de Valor Limite
  9. 9. Unitários Integração Transição de Estado Testes de Caminho Análise de Valor Limite
  10. 10. Unitários Integração Aceitação Transição de Estado Testes de Caminho Análise de Valor Limite
  11. 11. Unitários
  12. 12. Unitários JUnit
  13. 13. TDD
  14. 14. TDD Escreva um teste que falhe
  15. 15. TDD Escreva um teste que falhe Faça o teste passar
  16. 16. TDD Escreva um teste que falhe Faça o teste passar Refatore
  17. 17. Bom dia!
  18. 18. Testes de Aceitação
  19. 19. Testes de aceitação Por quê?
  20. 20. Testes de aceitação Por quê? Direcionar o desenvolvimento do produto
  21. 21. Testes de aceitação Pra quê? Verificar a completude de um requisito
  22. 22. Testes de aceitação Como?
  23. 23. Testes de aceitação Como? • Idealmente escritos antes do desenvolvimento • Idealmente Automatizados • Garantem que o código faz exatamente o que se propõe a fazer
  24. 24. Tempo
  25. 25. Tempo 1
  26. 26. Tempo 1 2
  27. 27. Tempo 1 2 3
  28. 28. Tempo 1 2 3 4
  29. 29. Tempo 1 2 3 4
  30. 30. Tempo 1 2 3 4 Explorar Requisitos Definir Testes de Aceitação para Use Cases
  31. 31. Tempo 1 2 3 4 Explorar Requisitos Definir Testes de Aceitação para Use Cases
  32. 32. Tempo Testes de aceitação garantes conformidade com os requisitos 1 2 3 4 Explorar Requisitos Definir Testes de Aceitação para Use Cases
  33. 33. Tempo Testes de aceitação garantes conformidade com os requisitos 1 2 3 4 Explorar Requisitos Definir Testes de Aceitação para Use Cases
  34. 34. Tempo Testes de aceitação garantes conformidade com os requisitos 1 2 3 4 Explorar Requisitos Definir Testes de Aceitação para Use Cases
  35. 35. Tempo Testes de aceitação garantes conformidade com os requisitos 1 2 3 4 Explorar Requisitos Definir Testes de Aceitação para Use Cases
  36. 36. Tempo Testes de aceitação garantes conformidade com os requisitos 1 2 3 4 Explorar Requisitos Definir Testes de Aceitação para Use Cases
  37. 37. Tempo Testes de aceitação garantes conformidade com os requisitos 1 2 3 4 Explorar Requisitos Definir Testes de Aceitação para Use Cases
  38. 38. Tempo Testes de aceitação garantes conformidade com os requisitos 1 2 3 4 Explorar Requisitos Definir Testes de Aceitação para Use Cases
  39. 39. Mãos à obra!
  40. 40. Selenium http://seleniumhq.org/ Selenium IDE 172.16.4.19
  41. 41. Test Suite <html> <head> <title>My Application Test Suite</title> </head> <body> <table> <tr><td><b>Suite Of Tests</b></td></tr> <tr><td><a href=quot;./TestLogin.htmlquot;>Test Login</a></td></tr> <tr><td><a href=quot;./TestFormEntry.htmlquot;>Test Form Entry</a></td></tr> <tr><td><a href=quot;./TestFormSave.htmlquot;>Test Form Save</a></td></tr> </table> </body> </html>
  42. 42. Exercício V Integrar Testes numa suite de testes de aceitação
  43. 43. Exercício V Construir testes de aceitação Na página principal, devem haver links para outros serviços do google: orkut, email, Imagens e Mapas Na pagina de Busca avançada, selecionar o idioma Ingles e buscar por “linux” deve retornar a pagina da wikipedia em inglês como primeiro item da busca Uma consulta que não apresenta resultados deve apresentar uma mensagem de indicação
  44. 44. Quando Parar de testar?
  45. 45. Quando Parar de testar? Custo
  46. 46. Quando Parar de testar? Custo Prazo
  47. 47. Quando Parar de testar? Custo Prazo Cliente
  48. 48. Criando Test Cases
  49. 49. Test Cases Comunicação
  50. 50. Test Cases Comunicação Encontrar problemas antes que o cliente o faça
  51. 51. Test Cases Comunicação Encontrar problemas antes que o cliente o faça Evitar que problemas ocorram
  52. 52. Test Cases Comunicação Encontrar problemas antes que o cliente o faça Evitar que problemas ocorram Auxiliar na tomada de decisão
  53. 53. Test Cases Aderência aos requisitos de negócio, não de sistema
  54. 54. Test Cases Redução de Riscos Medir a Qualidade
  55. 55. Encontre as prioridades do projeto!
  56. 56. Encontre as prioridades do projeto! Um único objetivo por vez!
  57. 57. Encontre as prioridades do projeto! Um único objetivo por vez! Está tudo claro? Pergunte!
  58. 58. Encontre as prioridades do projeto! Um único objetivo por vez! Está tudo claro? Pergunte! Pare e pense!
  59. 59. Test Cases Qualidades
  60. 60. Test Cases Qualidades Fácil de ler - Não há lugar para enrolação!
  61. 61. Test Cases Qualidades Fácil de ler - Não há lugar para enrolação! Rápido de encontrar o resultado esperado - Interpretação em poucos segundos
  62. 62. Test Cases Qualidades Fácil de ler - Não há lugar para enrolação! Rápido de encontrar o resultado esperado - Interpretação em poucos segundos Autoexplicativos - Não necessitam da especificação completa do sistma
  63. 63. Test Cases Qualidades Fácil de ler - Não há lugar para enrolação! Rápido de encontrar o resultado esperado - Interpretação em poucos segundos Autoexplicativos - Não necessitam da especificação completa do sistma Curtos - Elimine todos os desperdícios!
  64. 64. Easy to Test Language - Seja imperativo   quot;clique no botãoquot;, quot;vá ao item 1quot; - Seja direto e simples, porém não simplório - Use nomes exatos e consistentes para campos, não seja genérico - Entre 10 e 15 passos - Siga convenções de nomes - Se não existem convenções, CRIE-AS!!!
  65. 65. Atributos Comuns • Identificador • Descricao • Prioridade • Pre-condição • Dependências • Entradas • Instruções de utilização • Resultados esperados • Resultado Atual • Pós-condições • Resultado (passou/falhou) • Número da versao
  66. 66. Linhas Gerais
  67. 67. Linhas Gerais Escrever testes juntamente com os requisitos
  68. 68. Linhas Gerais Escrever testes juntamente com os requisitos Descrevem o atual requisito
  69. 69. Linhas Gerais Escrever testes juntamente com os requisitos Descrevem o atual requisito Siga um padrão, facilite a comunicação
  70. 70. Linhas Gerais Escrever testes juntamente com os requisitos Descrevem o atual requisito Siga um padrão, facilite a comunicação Priorize seus testes por valor de negócio
  71. 71. Linhas Gerais Escrever testes juntamente com os requisitos Descrevem o atual requisito Siga um padrão, facilite a comunicação Priorize seus testes por valor de negócio Agrupe testes por domínio
  72. 72. Linhas Gerais Escrever testes juntamente com os requisitos Descrevem o atual requisito Siga um padrão, facilite a comunicação Priorize seus testes por valor de negócio Agrupe testes por domínio Foque no valor! Foque no resultado!
  73. 73. Pratique!! A prática leva à perfeição
  74. 74. Pratique!! A prática leva à perfeição Priorize! Remova desperdícios!
  75. 75. Pratique!! A prática leva à perfeição Priorize! Remova desperdícios! Se possível, automatize! Seja preguiçoso!
  76. 76. Exercício VI Sistema de Vendas Construir testes de aceitação para módulo Fazer Pedido http://www.consiste.dimap.ufrn.br/~andre/casouso/
  77. 77. Exercício VI Fazer Pedido - versão 4 Atores     Cliente Pré-condição: O usuário deve ter feito quot;log-inquot; e obtido autorização do sistema Pós-condição: O pedido deve ter sido gravado no sistema e marcado como confirmado. Applying Use Cases: A Pratical Guidequot;, Geri Schneider & Jason Winters, Addison-Wesley, 1998.
  78. 78. Fazer Pedido - versão 4 Fluxo de eventos primário: 1. O caso de uso começa quando po cliente seleciona quot;fazer pedidoquot;. 2. O cliente fornece seu nome e endereço. 3. Se o cliente fornece apenas o CEP, o sistema coloca automaticamente o a cidade e o estado. 4. Enquanto o cliente quiser pedir itens faça 1. O cliente fornece código do produto 2. O sistema fornece as descrição e preço do produto 3. O sistema atualiza o valor total 5. O cliente fornece as informações sobre cartão de crédito. 6. O cliente submete os dados ao sistema. 7. O sistema verifica as informações fornecidas, marca o pedido como quot;pendentequot; e envia as informações de pagamento para o sistema de contabilidade e pagamento. 8. Quando o pagamento é confirmado, o pedido é marcado como quot;confirmadoquot; e o número de pedido (NP) é dado ao cliente. Fluxo de eventos secundário: A qualquer momento antes de submeter, o cliente pode selecionar cancelar. O pedido não é gravado e o caso de uso termina. No passo 7, se alguma informação estiver correta, o sistema pede ao cliente para corrigir a informação. Applying Use Cases: A Pratical Guidequot;, Geri Schneider & Jason Winters, Addison-Wesley, 1998.
  79. 79. Planejamento de Testes
  80. 80. Por que Planejar?
  81. 81. Por que planejar? Finalidade: • Localizar e documentar defeitos na qualidade do software. • Avisar de forma geral sobre a qualidade observada no software. • Validar as suposições feitas nas especificações de design e requisito através de demonstração concreta. • Validar as funções do software conforme projetadas. • Verificar se os requisitos foram implementados de forma adequada.
  82. 82. Com Planejar?
  83. 83. Teste antes, teste sempre!
  84. 84. Teste antes, teste sempre! Comunique-se!
  85. 85. Teste antes, teste sempre! Comunique-se! Comunique-se!
  86. 86. Teste antes, teste sempre! Comunique-se! Comunique-se! Se puder, automatize!
  87. 87. Teste antes, teste sempre! Comunique-se! Comunique-se! Se puder, automatize! Entenda o domínio do negócio
  88. 88. Templates
  89. 89. Introdução
  90. 90. Introdução Visão Geral: - Escopo, métodos, Padroes
  91. 91. Introdução Visão Geral: - Escopo, métodos, Padroes Requisitos: - Hardware, software, Pessoal
  92. 92. Templates
  93. 93. Template Interação Homem-Computador • descrição, • objetivos, • métodos, • objetos a serem testados, • eventos a serem testados, • verificação dos testes, • ferramentas de teste.
  94. 94. Template Testes Funcionais • objetivos, • métodos, • funções a serem testadas, • projeto de dados para testes, • construção dos dados de teste, • verficação do teste, • ferramentas de teste
  95. 95. Template Testes de regressão •Objetivos • O que não funciona mais e o que continua funcionando na nova versão • Dados para teste • quais casos serão reutilizados • Execução dos testes • Ferramentas de teste
  96. 96. Template Testes de desempenho • Objetivos • Métodos de teste • Monousuário • Multiusuário • Criação dos dados de teste • Verficação do teste • Ferramentas de teste
  97. 97. Template Testes de aceitação • Objetivos •Cenários de negócio a serem testados • Projeto dos casos de teste • Métodos de teste • Verficação do teste • Ferramentas de teste
  98. 98. Template Testes de Sistema • Objetivos • cenários de negócio a serem testados • Projeto dos casos de teste • Métodos de teste • Verficação do teste • Ferramentas de teste
  99. 99. Como documentar um Bug
  100. 100. Documentar um Bug • Seja preciso • Seja claro - explique de forma que outros possam reproduzir o erro • Um bug por relatório • Nenhum bug é simples o suficiente para não ser registrado • Separe claramente fatos de especulações • Um printscreen vale mais que mil parágrafos
  101. 101. Documentar um Bug “Eu estava usando o sistema e então ele deu pau”
  102. 102. Documentar um Bug “Eu estava usando o sistema e então ele deu pau” -> Abra o sistema e vá ao item quot;Arquivo > Novoquot; -> Desenhe uma Reta -> Vá até a função quot;Salvar Como...quot; e salve o arquivo -> Tente abrir o arquivo novo -> Verifique a mensagem de erro
  103. 103. O que testar?
  104. 104. Análise de Risco & Prioridades
  105. 105. Analise de Risco
  106. 106. Analise de Risco Use Case Cenário Risco Frequência Criticidade UserCase 1 Cenário A Alto Alta Baixa UserCase 2 Cenario B Médio Baixa Alta
  107. 107. Priorização
  108. 108. Priorização Modelo Kano
  109. 109. Priorização Modelo Kano Priorização Pelo Valor Percebido
  110. 110. Modelo Kano http://en.wikipedia.org/wiki/Kano_model
  111. 111. Modelo Kano Obrigatórios Must-have http://en.wikipedia.org/wiki/Kano_model
  112. 112. Modelo Kano Obrigatórios Must-have Quanto mais, melhor! Linear http://en.wikipedia.org/wiki/Kano_model
  113. 113. Modelo Kano Obrigatórios Must-have Quanto mais, melhor! Linear Necessidades não Exciters conhecidas http://en.wikipedia.org/wiki/Kano_model
  114. 114. Modelo Kano 2 Perguntas: http://www.acarlos.com.br/blog/
  115. 115. Modelo Kano 2 Perguntas: O que você acha de ter uma Funcional cerveja de graça no quarto de hotel todos os dias? http://www.acarlos.com.br/blog/
  116. 116. Modelo Kano 2 Perguntas: O que você acha de ter uma Funcional cerveja de graça no quarto de hotel todos os dias? Chegar em um hotel que não DysFunctional tem cerveja grátis, o que você acha? http://www.acarlos.com.br/blog/
  117. 117. Modelo Kano DysFunction Question Live with Neutral Expect Dislike Like M - Mandatory L - Linear Like Q E E E L Functional Question E - Exciter Expect R I I I M Q - Questionable Neutral R I I I M R - Reverse I - Indifferent Live with R I I I M Dislike R R R R Q
  118. 118. Benefício Relativo
  119. 119. Benefício Relativo http://www.acarlos.com.br/blog/
  120. 120. Benefício Relativo Pré-requisito: Estimativas criadas http://www.acarlos.com.br/blog/
  121. 121. Benefício Relativo Pré-requisito: Estimativas criadas Benefits Penalties Sum(BV) Estimation BV/Est Feature 1 1 9 10 2 5 Feature 2 Feature 3 Feature 4 Feature 5 http://www.acarlos.com.br/blog/
  122. 122. Benefício Relativo Pré-requisito: Estimativas criadas Benefits Penalties Sum(BV) Estimation BV/Est Feature 1 1 9 10 2 5 Feature 2 2 3 5 5 1 Feature 3 Feature 4 Feature 5 http://www.acarlos.com.br/blog/
  123. 123. Benefício Relativo Feature 5 Feature 1 Feature 3 Feature 4 Feature 2
  124. 124. Benefício Relativo Pré-requisito: Estimativas criadas Benefits Penalties Sum(BV) Estimation BV/Est Feature 1 1 9 10 2 5 Feature 2 2 3 5 5 1 Feature 3 5 1.6 13 8 8 Feature 4 6 7 13 13 1 Feature 5 5 5 10 2 5 http://www.acarlos.com.br/blog/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×