1. Testes de Software & Garantia da Qualidade (Conceitos & Fundamentos ) Professor: Rodrigo Zauza Passos
2. Slide: Capacitar o aluno a testar uma solução tecnológica fundamentando-se nas melhores práticas de Testes e de Garantia da Qualidade. :.: Objetivo
3. Slide: :.: A Oratec trabalha com as práticas: Achar falhas Previnir falhas Evitar falhas
4.
5.
6. Visões sobre a qualidade de um Software: :.: Nivelamento de Conceitos (II) Usuário Implementador Testador Organização Facilidade de uso, desempenho, confiabilidade dos resultados, etc. Facilidade de manutenção e conformidade em relação aos requisitos de usuários, etc. Software com boa qualidade é aquele que cumpre com os requisitos negociais com o mínimo de falhas possível. Cumprimento de prazo, boa previsão de custo, boa produtividade e rentabilidade. Conceito
7.
8. Caso 1 - Disney´s Lion King ( 1994-1995) -A Disney , em 1994 lançou seu primeiro jogo de multimedia para crianças “ Lion King Animated stories”. Era a primeira da Disney , e renomada , fez um enorme campanha de marketing por todo os EUA . Vendas foram absurdamente fantásticas (vendas de natal). Por é m , no dia seguinte , 26 de dezembro de 1994 o departamento de atendimento ao cliente da Disney recebeu uma enxurrada de ligações de clientes indignados e nervosos. O CD não funcionava em muitas das plataformas de PC existentes no mercado. Razão : O software foi desenvolvido em uma única plataforma ( que não refletia as mais comuns do mercado!). Faltou um simples teste de multiplataforma.... :.: Bug Arrasadores (1/4)
9. Caso 2 – Patriot Missile Defense System , 1991 Um programa de defesa americano chamado de “ star wars” incluía o chamado “U.S. Patriot missile”. O primeiro uso foi na guerra do golfo em 1991 para defender dos misseis Scuds do Iraque. Porem , este sistema falhou inúmeras vezes contra vários misseis , incluindo um míssil iraquiano que matou 28 soldados americanos em Dhahran , na Arábia Saudita. Numa analise , encontraram a causa : um bug no sistema de contagem ( pequeno timing error ) culminando num erro de 14 horas de diferença entre os relógios, deixando o sistema de contagem defasado. Custo : No mínimo, 28 vidas. :.: Bug Arrasadores (2/4)
10. Caso 3 – Limite de endereços de computador na WWW Quando o TCP/IP (protocolo de transmissão de pacotes da Internet) foi criado pelos sr. Vint Cerf e Bob Kahn, eles acharam que 4.3 bilhões de endereços eram suficientes. Parece muito, mas com o crescimento exponencial de transações nessa plataforma, pode-se atingir o limite antes do previsto. Um consórcio de organizações governamentais estão se preparando para ampliar este número para mais de 200 trilhões de endereços possíveis. A singela mudança implica mexer com muita gente e muitos computadores espalhados pelo planeta. Será um problema complexo de logística e sincronização dos sistemas. :.: Bug Arrasadores (3/4)
14. Slide: Processo de Software Processo de Software muito bem definido Garantia da Qualidade Req usuários :.: Processo de Software Gerência eficaz e controle das atividades pessoas procedimentos ferramentas Req. desenvolvedor Req. organização
15. Slide: RAD USDP Na Engenharia de Software, existem várias metodologias de produção ... Contramedidas para a gerência da produção :.: Métodos de Produção XM OMT Booch PMBOK Catalysis Waterfall SSADM W-Model V-Model Focaliza o quê Análise do sistema Fase planejamento Análise de requisitos Focaliza o como Projeto da Arquitetura Codificação Testes Focaliza as mudanças Manutenções A.C.E. Definição Desenvolvimento Manutenção Informações processadas Função e desempenho desejados Riscos mapeados Interfaces estabelecidas Arquitetura da solução Estrutura de dados Padrões de codificação Planejamento dos Testes XP FDD RUP DSDM SCRUM Iconix Cristal EUP
16. Slide: Existem vários modelos e padrões de qualidade: :.: Padrões de Qualidade
17. Slide: Existem vários modelos e padrões de qualidade: A maioria deles avaliam a qualidade do software a partir de 3 aspectos: (1) Operação do Produto; (2) Revisão do Produto; (3) Transição do Produto. Modelo de MCall (1977) :.: Padrões de Qualidade Eficiência Integridade Usabilidade Corretitude Confiabilidade Manutenibilidade Flexibilidade Testabilidade Portabilidade Reusabilidade Interoperabilidade
18.
19. Slide: :.: Um bom modelo de produção Processo Produto Requerimentos Análise Desenho Codificação Testes de Unidade Testes de Sistema Testes de Aceitação Testes de Integração teste teste teste teste doc doc doc doc
20. Slide: A implantação de um processo de formal de Testes no ciclo produtivo otimiza as relações setoriais e garante a cadência do trabalho coorporativo :.: Visão Geral sobre os Testes
21.
22. :.: O Processo de Testes de Software São premissas dos testes de software: Registrar/monitorar erros Analisar todos os requisitos Produzir métricas Formular indicadores de qualidade
23. Concepção Diagnosticar situação atual Assimilar Conhecimento Definir Estratégias Instrumentalização Instrumentalizar as estratégias definidas Criar, compartilhar e realimentar Expertise Evangelização Monitorar e criar cultura, Divulgar, Negociar, Compartilhar, Justificar, Celebrar, Aperfeiçoar... Analistas /Arquiteto de Testes Analista/Executores de Testes t+1 Analistas e Executores :.: O Processo de Testes de Software Atividades Macro X Responsáveis: t Complexidade Ciclo de Vida
24.
25.
26. Construa um simples caso de teste cuja meta é: Verificar se um palito de fósforo acende. Tempo estimado: 30 minutos (20/10) :.: Desafio #1
27. :.: O Processo de Testes de Software A estratégia de testes faz parte da Metodologia dos testes !!! Testes de regressão Testes automatizados Estratégia de testes Testes caixa branca Testes exploratórios Testes caixa preta Testes de vulnerabilidades Testes de Carga e Stress Testes Funcionais Testes baseados em cenários Testes negativos Inspeção de Artefatos Doc. Verificação de Diagramas UML Validação de modelos ER Validação/Verificação de requisitos Régua de Avaliação Fornecedores Testes unitários
28.
29. :.: O ciclos de produção e de testes de software Slide: Enviar Defeito Fornecedor Ciclo de Reparo de Defeitos Gerenciamento de Testes e Defeitos Gerenciamento do ciclo de produção do software Levantamento de Necessidades Análise dos Requisitos e Artefatos Especificação/Desenho Inspeção e Validação Corrigir e solucionar dúvidas Esclarecimento Reescrever Revalidar Abrir Defeito Retestar Defeito Cancelar Defeito Encerrar Defeito É Defeito ? BUGFix ?
30.
31.
32.
33.
34.
35.
36. #6) Crie matriz de rastreabilidade de componentes :.: Melhores práticas de testes (6/9) Requisito #1 Requisito #2 Requisito #... Requisito #n Caso de Teste #1 Passou Passou Não executado Caso de Teste #2 Passou Passou Caso de Teste #3 Falhou Passou Passou Caso de Teste #... Caso de Teste #n
37.
38.
39.
40. Em desenvolvimento Em teste Em teste Em homologação Em homologação Em produção :.: Ambientes de produção
50. Passo Nove :.: Métricas recursos de infra 448.5 MB/hr 324.9 MB/hr 214.0 MB/hr 170.1 MB/hr 123.2 MB/hr 115.7 MB/hr 73.9 MB/hr 31.4 MB/hr 31.0 MB/hr 26.0 MB/hr 18.0 MB/hr SMB CC:Mail IP NFS RPC NetBIOS Session Srvc TCP ISO SQL Server WWW (Web) FTP 10.2 ms 1.5 ms -- 35.5 ms 123.3 ms 90.0 ms -- ms -- ms 4.2 s 189.0 ms 673.4 ms Application List Bytes Application Average Response Time 113 Applications Lock Filter WAN Top Applications SMB 32% All Others 10% NetBIOS Session Srvc 6% TCP 7% Pipe files 8% IP Port 1177 9% CC:Mail 28%
51. Slide: 1. Preparação dos testes Objetivo: preparar todas as informações e artefatos necessários para um efetivo e eficiente processo de testes. Isto inclui levantar as especificações de uso, estabelecer as classe e desenhar um modelo flexível para o processo de testes. :.: O ciclo de testes
52. Slide: 2. Planejando os testes Objetivo: identificar a estratégia e procedimentos que melhor se adaptem à metodologia de desenvolvimento garnatindo a eficiência e eficácia dos testes. Esta etapa está em paralelo ao desenho do sistema e inclui: recursos, responsabilidades e objetivo dos testes; identificação de riscos e prioridades e identificação de entidades que serão ou não testadas. :.: O ciclo de testes
53. Slide: 3. Desenhando os testes Objetivo: definir os casos de teste, dados e procedimentos que estarão em conformidade com os requisitos iniciais. Esta etapa envolve planejamento estratégico próativo que detecte possíveis falhas. A definição dos testes deve primar pela simplicidade e baixo custo de execução. :.: O ciclo de testes
54. Slide: 3. Executando os testes Objetivo: Baseado nos casos de teste definidos na etapa anterior a execução será dinamizada de maneira que se descubra um número maior de falhas. :.: O ciclo de testes
55. Slide: 4. Análise do resultado dos testes Objetivo: Pra aprimorar o processo produtivo, nesta etapa são coletadas analisadas as evidências geradas pela etapa anterior. :.: O ciclo de testes
56.
57.
58.
59.
60.
61. :.: Apresentação da metodologia A360’ Insumo básico - ISO 9126: Portais da Qualidade Vivência Portais da Qualidade Significado Pergunta Chave Funcionabilidade Evidencia o conjunto de funções que atendem às necessidades implícitas e explícitas para a finalidade a que se destina o produto Satisfaz às necessidades ? Confiabilidade Evidencia a capacidade do produto de manter seu desempenho ao longo do tempo e em condições estabelecidas. É imune a falhas ? Usabilidade Evidencia a facilidade para a utilização do produto E fácil de usar ? Eficiência Evidencia o relacionamento entre o nível de desempenho do produto e a quantidade de recursos utlizados, sob condições estabelecidadas.. É rápido e “enxuto” ? Manutenibilidade Evidencia o esforço necessário para realizar modificações no produto. É fácil de modificar ?
69. Slide: :.: Papéis & Responsabilidades Papel Responsabilidades Gerente, Coordenador ou Líder de testes Viabiliza os recursos necessários para um esforço de testes; conduz as atividades e as monitora em conformidade com o planejamento; Realoca recursos ao longo do ciclo. Analistas de Testes Planeja a estratégia e elabora casos de testes, baseando-se nos requisitos de negócio do SUT. Arquiteto de Testes Prepara toda infra estrutura necessária para se executar a estratégia de testes. Instala ferramenta, gera massa de dados, mede performance, etc. Executor de Testes Executa tudo o que está planejado. Figura-chave do ciclo de testes pois as ocorrências encontradas por ele são os indicadores da qualidade do produto inspecionado.
71. Ferramentas :.: Visão geral de ferramentas em testes Gerenciamento de Dados e Arquivos Depuração e Análise Interativa Gerenciamento de Falhas e Performance Automação dos Testes
75. Slide: :.: Inspeção de Artefatos em TI (1/5) Por Ciclo de Entregas Qualidade Ciclo de Vida Qualidade suficientemente boa Não dá pra testar a Qualidade O artefato foi liberado. O Ciclo de testes começa aqui ! Build / Versão / Release Fim do Ciclo Testes NOK: problemas à vista Testes OK: comportamento esperado Testes não executados: Várias causas. Vivência
76. Slide: :.: Inspeção de Artefatos em TI (2/5) Ritmo mais demorados de testes Qualidade Ciclo de Vida Qualidade suficientemente boa Não dá pra testar a Qualidade O artefato foi liberado. O Ciclo de testes começa aqui ! Build / Versão / Release Fim do Ciclo Testes NOK: problemas à vista Testes OK: comportamento esperado Testes não executados: Várias causas. Vivência
77. Slide: :.: Inspeção de Artefatos em TI (3/5) Ritmo de testes estilo “Pizzaria” Qualidade Ciclo de Vida Qualidade suficientemente boa Não dá pra testar a Qualidade O artefato foi liberado. O Ciclo de testes começa aqui ! Build / Versão / Release Testes NOK: problemas à vista Testes OK: comportamento esperado Testes não executados: Várias causas. Vivência
78. Slide: :.: Inspeção de Artefatos em TI (4/5) Sob pressão forçam a homologação. Qualidade Ciclo de Vida Qualidade suficientemente boa Não dá pra testar a Qualidade O artefato foi liberado. O Ciclo de testes começa aqui ! Fim do Ciclo Testes NOK: problemas à vista Testes OK: comportamento esperado Testes não executados: Várias causas. Build / Versão / Release Vivência
79. Slide: :.: Inspeção de Artefatos em TI (5/5) Está acontecendo algo com quem produz o SUT … Qualidade Ciclo de Vida Qualidade suficientemente boa Não dá pra testar a Qualidade O artefato foi liberado. O Ciclo de testes começa aqui ! Fim do Ciclo Testes NOK: problemas à vista Testes OK: comportamento esperado Testes não executados: Várias causas. Build / Versão / Release Vivência