Técnicas de Teste

10.601 visualizações

Publicada em

Apresentação usada por Camilo Ribeiro para a Palestra "Técnicas de Teste no Ciclo de Desenvolvimento de Software" para o Centro Universitário UNA de Belo Horizonte em 25 de Março de 2010

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

Sem downloads
Visualizações
Visualizações totais
10.601
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1.743
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
14
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Técnicas de Teste

  1. 1. Técnicas de Teste no Ciclo de Vida<br />de Desenvolvimento de Software<br />Camilo Ribeiro<br />TheBugBangTheory<br />
  2. 2. Camilo Falcão Ribeiro<br /><ul><li>Analista de Teste e Engenheiro de Processos na Squadra Tecnologia;
  3. 3. Mais de quatro anos atuando em Teste de Software e Processos;
  4. 4. Participação em mais de 40 projetos de Software;
  5. 5. Participação em projetos de implantação do CMMi (todos os níveis);
  6. 6. Graduado em Sistemas para Internet pela Faculdade Pitágoras;
  7. 7. Pós graduando em Engenharia de Software pela UFMG;
  8. 8. Certificado como especialista em Teste de Software pelo ISTQB e ALATS;
  9. 9. Membro do comitê de inovação em Teste de Software ALATS;
  10. 10. Mantedor do blog técnico www.bugbang.com.br;
  11. 11. Especialista em implementação e customização da ferramenta TestLink.</li></li></ul><li>Bug?<br />
  12. 12. Defeitos!<br />
  13. 13. Custo do Defeito<br />Custo relativo para corrigir um defeito. Adaptado de (BOEHM, 1981).<br />Distribuição do retrabalho pelas atividades de desenvolvimento de software. Adaptado de (WHEELER et al., 1996).<br />
  14. 14. Desenv. Cascata (1970)<br />Requisitos<br />Desenho<br />Implementação<br />Testes<br />Manutenção<br />
  15. 15. Desenv. Cascata Realimentada<br />Requisitos<br />Desenho<br />Implementação<br />Testes<br />Manutenção<br />
  16. 16. Ciclo de Vida em Espiral (XP, SCRUM)<br />Requisitos<br />Desenho<br />Implementação<br />Testes<br />Produto completo?<br />Não<br />Sim<br />
  17. 17. Entrega Evolutiva<br />Requisitos<br />Análise<br />Desenho Arquitetônico<br />Desenho Detalhado<br />Implementação<br />Testes<br />Não<br />Produto completo?<br />Sim<br />
  18. 18. Ciclo de Vida Quase Espiral<br />RUP, Mbase, Praxis<br />Conceito Inicial<br />Requisitos<br />Análise<br />Desenho<br />Implementação<br />Testes<br />Não<br />Produto completo?<br />Sim<br />Implantação<br />
  19. 19. Como resolver esse problema?<br />
  20. 20.
  21. 21. Teste de Software<br />Inspeções<br /> -De requisitos<br /> -De casos de uso<br /> -De código fonte<br />Testes de unidade<br />Testes de integração<br /> -Entre classes<br /> -Entre sistemas<br />Elaboração de Casos de Teste<br /> -Baseados em requisitos / Casos de Uso<br /> -Baseados em valores limites<br /> -Baseados em partições de equivalência<br /> -Baseado em cenários de negócio<br />Testes de Sistema<br /> -A partir de casos e procedimentos de teste<br /> -Manual<br /> -Execução automática<br /> -Exploratórios<br />Testes de Aceite<br /> -Baseado em cenários de negócio<br />Testes de Requisitos não Funcionais<br /> -Carga<br /> -Estresse<br /> -Segurança<br />
  22. 22. Modelos “V” De Desenvolvimento<br />Requisitos<br />Teste de Aceite<br />Análise<br />Teste de Sistema<br />Desenho<br />Teste de Integração<br />Teste de Unidade<br />Implementação<br />Verificação e Validação – Áreas de Processos do CMMi<br />
  23. 23. Inspeções<br />
  24. 24. Inspeções<br />
  25. 25. Teste de Unidade<br />Classe Java<br />Requisito<br />Gera<br />Métricas<br />Especifica<br />Classe de Teste<br />Acessa<br />Defeitos<br />Acessa<br />Implementa<br />Dados(DB, XML)<br />Bibliotecas<br />(Junit)<br />Cobertura de Código<br />
  26. 26. Caso de Teste<br />ID - Nome<br />Pré condições<br />Procedimentos<br />Entradas e Saídas<br />CT <br />SIS65<br />Resultados esperados<br />Pós Condições<br />
  27. 27. Elaboração de Casos de Teste<br />Leitura do caso de uso<br />Desenho dos fluxos do caso de uso<br />
  28. 28. Elaboração de Casos de Teste<br />Identificação das regras e dos momentos em que essas regras são ativadas<br />
  29. 29. Elaboração de Casos de Teste<br />Identificação dos cenários de Teste<br />
  30. 30. Elaboração de Casos de Teste<br />Identificação dos cenários de Teste<br />CT01<br />CT02<br />CT03<br />CT04<br />Cenários e Procedimentos de Teste<br />CT05<br />CT06<br />CT07<br />CT08<br />CT09<br />CT10<br />CT11<br />CT12<br />CT14<br />CT15<br />CT16<br />CT13<br />
  31. 31. Valores Limites<br />Baseado em intervalos matemáticos, onde, devemos testar pelo menos os valores nas extremidades dos intervalos.<br />Pode ser representado por gráficos, por conjuntos de valores ou por expressões matemáticas.<br />
  32. 32. Valores Limites<br />Todos veículos fabricados entre 15/01/2009 e 20/04/2009 são chamados para recall:<br />14/01/2009 – false15/01/2009 – true16/01/2009 – true <br />19/04/2009 – true <br />20/04/2009 – true<br />21/04/2009 – false <br />CT0N<br />CT0N<br />CT0N<br />CT0N<br />CT0N<br />CT0N<br />Todos veículos com chassi maior ou igual a WAUZZZ44ZGN082819 e menor que WAUZZZ44ZGN095821 são chamados para recall:<br />WAUZZZ44ZGN082818 – false <br />WAUZZZ44ZGN082819 – true <br />WAUZZZ44ZGN082820 – true <br />WAUZZZ44ZGN095820 – true <br />WAUZZZ44ZGN095821 – false <br />WAUZZZ44ZGN095822 – false <br />CT0N<br />CT0N<br />CT0N<br />CT0N<br />CT0N<br />CT0N<br />
  33. 33. Partição de Equivalência <br />Baseado no princípio matemático dos conjuntos, onde, devemos testar pelo menos um elemento de cada conjunto distinto.<br />Pode ser representado por gráficos, por conjuntos de valores ou por expressões de álgebra relacional.<br />CT01<br />“A”<br />CT02<br />“AB”<br />CT03<br />“B”<br />
  34. 34. Partição de Equivalência <br />Qualquer veículo pode ser alugado:<br />CT01<br />Carro<br />Veículos<br />CT02<br />Pick-up<br /> Caminhão<br />Carro<br />Pick-up<br />CT03<br />Caminhão<br />1 de cada subconjunto<br />CT04<br />Ônibus<br />Ônibus<br />Ciclomotores<br />Motoneta<br />Motocicleta<br />CT05<br />Motocicleta<br />Helicóptero<br />CT06<br />Motoneta<br />CT07<br />Helicóptero<br />
  35. 35. Testes de Sistema<br />CT01<br />Carro<br />Leitura dos casos de teste<br />Registro manual dos resultados<br />CT02<br />Pick-up<br />Manual<br />IBM Rational Quality Manager<br />CT03<br />Caminhão<br />CT04<br />Ônibus<br />Programação dos casos de teste<br />em ferramenta de automação e<br />Record and replay<br />CT05<br />Motocicleta<br />Automatizado<br />CT06<br />Motoneta<br />*Desenvolver testes automatizados leva cerca de 3 a 10 vezes mais tempo que executá-los manualmente. O ganho está na redução do tempo de execução.(CBT-TST110)<br />CT07<br />Helicóptero<br />
  36. 36. Testes de Aceite<br />Os testes de aceite são os testes executados pelo cliente, baseados nos requisitos.<br />Abstração<br />Caso de Teste de Aceite<br />. . .<br />Caso de Teste de Negócio<br />Cenário de Teste<br />Caso de Teste<br />
  37. 37. Testes de Aceite<br />Cadastre o item X a R$80,00<br />Cadastre o item Y a R$90,00<br />Cadastre a promoção Z (Frete Gratuito em compras acima de 150,00)<br />Cadastre-se como cliente João da Silva (joao@silva.com.br)<br />Pesquise pelo item X<br />Inclua o item X no carrinho<br />Consulte o valor do frete para CEP 30626-000 (Frete R$15,00)<br />Sistema informa Total = R$95,00<br />Sistema recomenda o item Y com economia de R$15,00<br />Selecione o Item Y<br />Inclua o item Y no carrinho<br />Consulte o valor do frete para CEP 30626-000 (Frete R$00,00)<br />Sistema informa Total = R$95,00<br />Confirme a compra<br />Sistema solicita endereço baseado no CEP<br />Informe o número e complemento (123, A)<br />Sistema informa as condições de pagamento <br />Informe “Visa a vista”<br />. . .<br />N . Cliente confirma recebimento do produto.<br />
  38. 38. Testes de Aceite<br />Protótipos:<br />1 – Acesse a tela principal<br />2 – Acione o menu Livros<br />3 – Selecione livro “O Símbolo Perdido” no banner de promoções<br />4 – Sistema exibe descrição do livro<br />5 –Solicite Comprar<br />6 – Informe a Quantidade<br />7 – Solicite Continuar<br />8 – Sistema Solicita Login<br />
  39. 39. Testes de Requisitos Não Funcionais<br />Para Kirner e Davis (1996), requisitos não-funcionais são declarações que definem as qualidades globais ou atributos a serem atendidos pelo sistema resultante. <br />Segundo Cysneiros (1997), os requisitos não-funcionais, ao contrário dos requisitos funcionais, não expressam nenhuma função a ser realizada pelo software, e sim comportamentos e restrições que este software deve satisfazer.<br />Os testes desses requisitos são normalmente executados com ajuda de ferramentas especializadas, com grande planejamento, avaliação arquitetural, aplicando técnicas avançadas.<br />
  40. 40. Eficiência<br />Pesquisa<br />Arquitetura e Rede<br />Requisitos <br />Funcionais<br />Outros Requisitos <br />Não Funcionais<br />Recursos <br />Algoritmo<br />Acessos / Usuários<br />
  41. 41. Eficiência<br />Medidores por servidor<br />Registradores por página<br />Sumário com as médias de resposta<br />
  42. 42. Personalize o seu modelo “V”<br />Teste de Aceite<br />Elaboração de Testes de Aceite<br />Requisitos<br />Teste de Sistema<br />Elaboração de Casos de Teste<br />Análise<br />Automação de testes<br />Análise Arquitetural<br />Desenho<br />Teste de Integração<br />Teste de Unidade<br />Elaboração de Testes de Unidade<br />Implementação<br />Revisão ou Inspeção<br />Validação com o cliente<br />
  43. 43. E assim por diante . . .<br />•Desempenho:<br /> -Carga;<br /> -Estresse;<br /> -Maturidade.<br />•Segurança:<br /> -XSS;<br /> -SQL Injection.<br />•Usabilidade:<br />- Acessibilidade;<br /> -Facilidade de uso.<br />•CaixaBranca:<br /> -Cobertura de comandos;<br /> -Cobertura de decisão.<br />•CaixaPreta:<br /> -Transição de Estado;<br /> -Tabela de decisão;<br /> -BaseadoemHistórias do usuário.<br />E muitomais!<br />
  44. 44. Esse material foi inspecionado!<br />Obrigado:<br />• Amanda Magalhães<br />• Elias Nogueira<br />• Fabíola Lara<br />• Ricardo Antunes<br />• Vanessa Vaz<br />E aindadeveteralguns bugs . . . <br />
  45. 45. Dúvidas?<br />camilo@camiloribeiro.com.br - www.bugbang.com.br<br />
  46. 46. Bibliografia<br />•Myers, Glenford J. (1979). The Art of Software Testing. John Wiley and Sons. ISBN 0-471-04328-1.<br />•BOEHM, B.W., 1981, Software Engineering Economics, Prentice Hall.<br />•WHEELER, D.A., BRYKEZYNSKI, B., MEESON, R.N., 1996, Software Inspections: AnIndustry Best Practice, IEEE ComputerSociety.<br />• PRESSMAN, R.S., 2001, Software Engineering: A Practitioner´s Approach, Fifth Edition, McGraw Hill.<br />•[ISO9126] ISO/IEC 9126-1:2001, Software Engineering – Software Product Quality<br />•ISQTQB Glossário de termosusados no Teste de Software Versão 1.0<br />•FoundationLevel ISTQB Syllabus, ISTQB<br />•PÁDUA FILHO (2003), Wilson. Engenharia de Software– Fundamentos, Métodos e Padrões. 3ª Edição. LTC Editora, 2009.<br />•RIOS, E., MOREIRA, T., SOUZA, A., CRISTALLI, R . Base de Conhecimento em Teste de Software 2ª Edição. Martins, 2007.<br />•IEEE Std 829-2008.<br />•Kirner, T. G., Davis, A. M. (1996) “Nonfunctional Requirements of Real-Time Systems; Advances in Computers”, vol. 42<br />•Cysneiros, L. M., Leite, J.C.S.P (2004) “A Framework for IntegratingNon-FunctionalRequirementsinto Conceptual Models”, IEEE<br />transactions on software engineering, Vol. 30, No. 5.<br />•CBT-TST110, Principles of Test Automatization for GUI Testing. IBM.<br />
  47. 47. Muito Obrigado!<br />

×