Teste de Software Introdução à Qualidade

9.542 visualizações

Publicada em

Palestra realizada por Camilo Ribero no segundo semestre de 2010 para os alunos dos cursos de sistemas de informação e ciência da computação da PUC Minas, na Unidade São Gabriel

Publicada em: Tecnologia
0 comentários
6 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
9.542
No SlideShare
0
A partir de incorporações
0
Número de incorporações
384
Ações
Compartilhamentos
0
Downloads
347
Comentários
0
Gostaram
6
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Teste de Software Introdução à Qualidade

  1. 1. Teste de Software: Introdução à Qualidade Camilo Ribeiro Esp. SE, ISTQB, CBTS
  2. 2. Consultor em arquitetura de testes e processos pela Caresoft Tecnologia ; Líder de Qualidade e Processos pela Alltcom Sistemas ; Palestrante em universidades como PUC Minas , UNI-BH e UNA . Mais de quatro anos atuando em Teste de Software e Processos; Participação em mais de 40 projetos de Software; Participação em projetos de implantação do CMMi (todos os níveis); Graduado em Sistemas para Internet pela Faculdade Pitágoras ; Pós graduado em Engenharia de Software pela UFMG ; Aluno da pós-graduação e pesquisa em Ciência da Computação na UFMG ; Certificado como especialista em Teste de Software pelo ISTQB e ALATS ; Membro do comitê de inovação em Teste de Software ALATS ; Mantedor do blog técnico www.bugbang.com.br ; Especialista em implementação e customização da ferramenta TestLink .
  3. 3. Agenda Camilo Ribeiro – camilo@camiloribeiro.com Breve introdução sobre qualidade e teste de software Mercado de trabalho e papéis Verificação, validação e QA Mitos sobre teste de software Introdução ao pensamento de testador Derivando casos de teste de casos de uso Técnicas de teste
  4. 4. O que é Qualidade? Qualidade  é um conceito subjetivo que está relacionado diretamente às percepções de cada indivíduo. Diversos fatores como cultura, modelos mentais, tipo de produto ou serviço prestado, necessidades e expectativas influenciam diretamente nesta definição. Camilo Ribeiro – camilo@camiloribeiro.com
  5. 5. O que é teste de software? • Testar é o processo de executar um programa ou sistema com a intenção de encontrar defeitos (teste negativo) (Myers, 1979) • Testar é qualquer atividade que, a partir da avaliação de um atributo ou capacidade, permita determinar se o programa ou sistema obtém os resultados desejados (Hetzel, 1988) • Testar é verificar se o software está fazendo o que deveria fazer, de acordo com seus requisitos, e se não está fazendo o que não deveria fazer (Rios, Cristalli, Moreira e Souza, 2003) Camilo Ribeiro – camilo@camiloribeiro.com
  6. 6. O que é teste de software? Processo que consiste em todas as atividades do ciclo de vida, tanto estáticas quanto dinâmicas, voltadas para o planejamento, preparação e avaliação de produtos de software e produtos de trabalho relacionados a fim de determinar se eles satisfazem os requisitos especificados e demonstrar que estão aptos para sua finalidade e para a detecção de defeitos. (“Testing”, Glossário ISTQB 2007) Camilo Ribeiro – camilo@camiloribeiro.com
  7. 7. Perfil do profissional de teste de software  Pesquisa realizada pelo Cristiano Caetano em 2007 (pesquisa 2010 em andamento www.testexpert.com.br ) Pesquisa Completa: “ Cargos e Salários - Quanto ganha o profissional de teste e qualidade de software.pdf ” Camilo Ribeiro – camilo@camiloribeiro.com
  8. 8. Papéis no Rational Unified Process (RUP) Camilo Ribeiro – camilo@camiloribeiro.com
  9. 9. Papéis e Cargos Papel != Cargo O RUP usa uma analogia onde os colaboradores de um projeto trocam de “chapéus” várias vezes durante o processo de desenvolvimento de software. Se assume o papel de gerente de Configuração, não quer dizer que é um Gerente de projetos. Camilo Ribeiro – camilo@camiloribeiro.com
  10. 10. Como o mercado informal classifica? Liderança Gestão de projetos Organizacional Negócios e Processos Técnica Arquitetura de Software Camilo Ribeiro – camilo@camiloribeiro.com
  11. 11. Certificação profissional Certificação Brasileira de Teste de Software: Associação Latino-Americada de Teste de Software www.alats.org.br Certified Tester Foundation Level; Certified Tester Advanced Level; International Software Testing Qualifications Boarder www.bstqb.org.br Certified Associate in Software Testing (CAST) ; Certified Software Quality Analyst (CSQA) ; Certified Software Tester (CSTE): Quality Assurance Institute www.qaibrasil.com.br/ Guia Completo para Certificações em Qualidade e Teste de Software - Versão 2008 Camilo Ribeiro – camilo@camiloribeiro.com
  12. 12. Custo aumenta exponencialmente <ul><li>Adiar testes de software </li></ul>Custo relativo para corrigir um defeito. Adaptado de (BOEHM, 1981). Camilo Ribeiro – camilo@camiloribeiro.com
  13. 13. Verificação, validação e QA Camilo Ribeiro – camilo@camiloribeiro.com Se a sua pergunta é... então você está falando de: Segui o processo? QA – Garantia de qualidade Fiz a coisa corretamente? Verificação Fiz a coisa certa? Validação
  14. 14. Quality Assurance (Garantia de Qualidade) “ Garantir que o processo seja seguido adequadamente e que seus produtos de trabalho sejam elaborados nos momentos adequados.” - CMMi for Development 1.2 Ligado ao processo da organização Camilo Ribeiro – camilo@camiloribeiro.com
  15. 15. Verificação “ O propósito da verificação é demonstrar que o produto ou seus produtos de trabalho atendem aos seus requisitos específicos.” - CMMi for Development 1.2 Ligado a Sintaxe, o como . . . Camilo Ribeiro – camilo@camiloribeiro.com
  16. 16. Validação “ O objetivo da validação é demonstrar que um componente do produto cumpre o seu uso pretendido quando colocado em seu ambiente pretendido.” - CMMi for Development 1.2 Semântica, o que . . . Camilo Ribeiro – camilo@camiloribeiro.com
  17. 17. Mitos sobre teste de software <ul><li>Testar é fácil: Entre 20 a 50% do esforço de um projeto é teste de software </li></ul><ul><li>Testador é aquele que não aprendeu a programar: E os engenheiros (Técnicos) ? Analistas de requisitos, negócios, gerentes, coordenadores e outros envolvidos também não aprenderam a programar? Engenharia de software é trabalho em equipe! </li></ul><ul><li>O Teste é uma fase após todas as outras : Teste de software participar desde a pré venda dos projetos de software até a produção e remoção . </li></ul><ul><li>Testadores são menos qualificados, ou podem ser estagiários: Tudo bem, se acredita que o seu cliente pode receber os defeitos provenientes de testes mal planejados, desenhados, executados e medidos.  </li></ul><ul><li>Testes são dispensáveis em projetos com tempo e custo estourando: Além do tempo e do custo, a qualidade também ficará prejudicada? </li></ul><ul><li>Todo BUG é culpa do desenvolvedor: A literatura e a experiência nos mostram que menos da metade dos defeitos do software, são provenientes de erros dos programadores. </li></ul>Camilo Ribeiro – camilo@camiloribeiro.com
  18. 18. Transparência do teste Requisitos / Negócios (Abstração) Teste de caixa branca Teste baseado na análise da estrutura interna de um componente ou sistema. (Glossário ISTQB) Teste de caixa preta Teste, funcional ou não funcional, sem referência à estrutura interna do componente ou do sistema. (Glossário ISTQB) Camilo Ribeiro – camilo@camiloribeiro.com
  19. 19. Níveis, técnicas e tipos de teste Camilo Ribeiro – camilo@camiloribeiro.com Técnicas de Teste Nível de Teste Dimensões da Qualidade segundo o RUP Funcionalidade Confiabilidade Usabilidade Desempenho Suportabilidade Alguns tipos de Teste Caixa Branca Teste de Unidade Teste de Integração Segurança Integridade Carga Configuração Caixa Cinza Teste de Sistema Funcional Regressão Usabilidade Caixa Preta Teste de Aceitação Volume Maturidade Estresse Instalação Como Testar Quando Testar O que Testar
  20. 20. O que posso usar para criar testes? Requisitos Estórias de Usuário Dados Casos de uso Diagramas da UML Bugs Experiência Código Fonte Checklist Camilo Ribeiro – camilo@camiloribeiro.com Software fechado
  21. 21. Pense como um testador <ul><ul><li>Pensar nas variáveis </li></ul></ul><ul><ul><ul><li>Pensar no objetivo </li></ul></ul></ul><ul><ul><ul><ul><li>Atende os requisitos funcionais? </li></ul></ul></ul></ul><ul><ul><ul><li>Pensar no ambiente </li></ul></ul></ul><ul><ul><ul><ul><li>Funciona do mesmo jeito em todos os browsers ou SOs? </li></ul></ul></ul></ul><ul><ul><ul><li>Pensar nos requisitos implícitos e não funcionais </li></ul></ul></ul><ul><ul><ul><ul><li>Está fácil de entender, está rápido? </li></ul></ul></ul></ul><ul><ul><ul><li>Pensar no cliente </li></ul></ul></ul><ul><ul><ul><ul><li>Se eu fosse o cliente eu queria ver . . . </li></ul></ul></ul></ul><ul><ul><ul><li>Pensar possíveis problemas </li></ul></ul></ul><ul><ul><ul><ul><li>Acho que com esses dados pode dar problema </li></ul></ul></ul></ul><ul><ul><ul><li>Pensar em definições </li></ul></ul></ul><ul><ul><ul><ul><li>Se eu fosse o cliente, entenderia esse label ? </li></ul></ul></ul></ul><ul><ul><ul><li>Pensar no uso em diferentes configurações ou ambientes </li></ul></ul></ul><ul><ul><ul><ul><li>No meu IPhone funciona, mas e no BlackBarry? </li></ul></ul></ul></ul><ul><ul><ul><li>Seja criativo, detalhista e crítico </li></ul></ul></ul>Camilo Ribeiro – camilo@camiloribeiro.com
  22. 22. O que testar em um copo? Camilo Ribeiro – camilo@camiloribeiro.com
  23. 23. O que testar em um copo? <ul><ul><ul><li>Testar o volume (Capacidade)? </li></ul></ul></ul><ul><ul><ul><li>Testar a transparência? </li></ul></ul></ul><ul><ul><ul><li>Testar a durabilidade? </li></ul></ul></ul><ul><ul><ul><li>Testar resistência a frio? </li></ul></ul></ul><ul><ul><ul><li>Testar resistência a calor? </li></ul></ul></ul><ul><ul><ul><li>Testar resistência a sons? </li></ul></ul></ul><ul><ul><ul><li>Testar a resistência física? </li></ul></ul></ul><ul><ul><ul><li>Testar como fica quando quebrado? </li></ul></ul></ul><ul><ul><ul><li>Testar o peso? </li></ul></ul></ul><ul><ul><ul><li>Testar as dimensões? </li></ul></ul></ul><ul><ul><ul><li>Testar o material usado (Vidro, cristal, outro)? </li></ul></ul></ul><ul><ul><ul><li>Testar a espessura? </li></ul></ul></ul><ul><ul><ul><li>. . . . . </li></ul></ul></ul>Camilo Ribeiro – camilo@camiloribeiro.com
  24. 24. Pirâmide de dependência Camilo Ribeiro – camilo@camiloribeiro.com
  25. 25. Caso de Uso Camilo Ribeiro – camilo@camiloribeiro.com
  26. 26. Cenários de Teste Camilo Ribeiro – camilo@camiloribeiro.com
  27. 27. Casos de teste A, B, C, D, E M, N, O, P, Q V, W, X, Y, Z Cenário 3 do Caso de Uso 27 Caso de Teste 1 Caso de Teste 2 Caso de Teste 3 Camilo Ribeiro – camilo@camiloribeiro.com
  28. 28. Elaborando Casos de teste a partir de casos de uso <ul><li>Leitura do caso de uso </li></ul><ul><li>Desenho dos fluxos do caso de uso </li></ul>Camilo Ribeiro – camilo@camiloribeiro.com
  29. 29. Elaborando Casos de teste a partir de casos de uso <ul><li>Identificação das regras e dos momentos em que essas regras são ativadas </li></ul>Camilo Ribeiro – camilo@camiloribeiro.com
  30. 30. Elaborando Casos de teste a partir de casos de uso <ul><li>Identificação dos cenários de Teste </li></ul>Camilo Ribeiro – camilo@camiloribeiro.com
  31. 31. Elaborando Casos de teste a partir de casos de uso Cenários e Procedimentos de Teste CT01 CT02 CT03 CT04 CT05 CT06 CT07 CT08 CT09 CT10 CT11 CT12 CT14 CT15 CT16 CT13 <ul><li>Identificação dos cenários de Teste </li></ul>Camilo Ribeiro – camilo@camiloribeiro.com
  32. 32. Valores limites Baseado em intervalos matemáticos, onde, devemos testar pelo menos os valores nas extremidades dos intervalos. Pode ser representado por gráficos, por conjuntos de valores ou por expressões matemáticas. Camilo Ribeiro – camilo@camiloribeiro.com
  33. 33. Valores limites Todos veículos fabricados entre 15/01/2009 e 20/04/2009 são chamados para recall: Todos veículos com chassi maior ou igual a WAUZZZ44ZGN082819 e menor que WAUZZZ44ZGN095821 são chamados para recall: CT0N CT0N CT0N CT0N CT0N CT0N 14/01/2009 – false 15/01/2009 – false 16/01/2009 – true 19/04/2009 – true 20/04/2009 – false 21/04/2009 – false WAUZZZ44ZGN082818 – false WAUZZZ44ZGN082819 – true WAUZZZ44ZGN082820 – true WAUZZZ44ZGN095820 – true WAUZZZ44ZGN095821 – false WAUZZZ44ZGN095822 – false CT0N CT0N CT0N CT0N CT0N CT0N Camilo Ribeiro – camilo@camiloribeiro.com
  34. 34. Valores limites Imagine um sistema onde cada usuário pode publicar alguns avisos para serem exibidos na intranet, um telão ou em um outro dispositivo qualquer. Logado, o usuário informa qual o aviso, e qual o periodo que o aviso deve ser exibido. Ele pode cadastrar quantos avisos desejar, mas, no caso de uso de cadastro de avisos, existe uma regra: R001 - Um usuário não pode cadastrar dois avisos ocupando o mesmo período. Como testar essa regra? Camilo Ribeiro – camilo@camiloribeiro.com
  35. 35. Valores limites Inserir valores válidos (fora dos limites) Inserir um valor exatamente igual Inserir um valor qualquer Inserir valores em cada fronteira Inserir valores dentro dos limites Inserir valores que contenham os limites Testar novamente com outro usuário Agora repedir para a operação de atualização Camilo Ribeiro – camilo@camiloribeiro.com
  36. 36. Partição de Equivalência Baseado no princípio matemático dos conjuntos, onde, devemos testar pelo menos um elemento de cada conjunto distinto. Pode ser representado por gráficos, por conjuntos de valores ou por expressões de álgebra relacional. CT01 “ A” CT02 “ AB” CT03 “ B” Camilo Ribeiro – camilo@camiloribeiro.com
  37. 37. Partição de Equivalência Qualquer veículo pode ser alugado: Veículos Ciclomotores Caminhão Carro Ônibus Helicóptero 1 de cada subconjunto Pick-up CT01 Carro CT02 Pick-up CT03 Caminhão CT04 Ônibus CT05 Motocicleta CT06 Motoneta CT07 Helicóptero Camilo Ribeiro – camilo@camiloribeiro.com Motoneta Motocicleta
  38. 38. Teste de Sistema Camilo Ribeiro – camilo@camiloribeiro.com Um sistema é formado por várias funcionalidades ou “casos de uso”
  39. 39. Teste de Sistema Camilo Ribeiro – camilo@camiloribeiro.com Cada funcionalidade do sistema possui diversos fluxos
  40. 40. Teste de Sistema Integra cenários de várias funcionalidades para realizar um processo de negócio! Camilo Ribeiro – camilo@camiloribeiro.com
  41. 41. SMQS – Seminário Mineiro de Qualidade de Software Camilo Ribeiro – camilo@camiloribeiro.com http://www.smqs2010.base2.com.br/programacao/
  42. 42. Dúvidas? [email_address] http://www.bugbang.com.br
  43. 43. Muito Obrigado!
  44. 44. Referências <ul><li>Myers, Glenford J. (1979). The Art of Software Testing. John Wiley and Sons. ISBN 0-471-04328-1. </li></ul><ul><li>B. Hetzel (1988). &quot;The Growth of Software Testing“ </li></ul><ul><li>• RIOS, E., MOREIRA, T., SOUZA, A., CRISTALLI, R . Base de Conhecimento em Teste de Software 2ª Edição. Martins, 2007. </li></ul><ul><li>RUP 7.5, IBM </li></ul><ul><li>ZIELCZYNSKI, Peter, Traceability from Use Cases to Test Cases, http://www.ibm.com/developerworks/rational/library/04/r-3217/ IBM Rational Technical library, 2006 </li></ul><ul><li>BOEHM, B.W., 1981, Software Engineering Economics, Prentice Hall. </li></ul><ul><li>ISQTQB Glossário de termos usados no Teste de Software Versão 1.0 </li></ul><ul><li>Caetano, Cristiano. Quanto ganha um profissional de teste e qualidade de software? http://testexpert.com.br/? q=node/231 - 2007 </li></ul><ul><li>Martinho, Fábio – Guia Completo para certificãções em qualidade e teste de software – Versão 2008 - http://testexpert.com.br/? q=node/1080 - 2008 </li></ul><ul><li>CMMI Product Team. CMMI® for Development, Version 1.2 </li></ul>

×