Baixe o app para aproveitar ainda mais
Prévia do material em texto
Garantia de Qualidade de Software Prof. Carlos Henrique R. Sarro Garantia de Qualidade de Software “Se tivesse seis horas para derrubar uma árvore, eu passaria as primeiras quatro horas afiando o machado.” Abraham Lincoln Garantia de Qualidade de Software A Realidade dos Projetos de Software +30% dos projetos são cancelados antes de serem finalizados; +70% dos projetos falham nas entregas das funcionalidades; Os custos extrapolam em mais de 180% do orçamento inicial; Os prazos excedem em mais de 200% os cronogramas originais. Garantia de Qualidade de Software Os custos da Falta de Qualidade 02/07/2002 - 13h03 Bugs em software custam US$ 60 bilhões por ano aos EUA da Reuters, em Nova York (EUA) ... a pesquisa também descobriu que melhores testes dos programas poderiam eliminar falhas e etapas iniciais de desenvolvimento, o que poderia reduzir os custos em US$ 22,2 bilhões. ... cerca de 80% dos custos com desenvolvimento de softwares são gerados para identificar e corrigir defeitos de programação em milhares de linhas de código. Garantia de Qualidade de Software Modelo CMM Nível 1: Inicial Nível 2: Repetível Nível 3: Definido Nível 4: Gerenciado Nível 5: Otimizado Anárquico Cultural Padronizado Mensurável Otimizado Processo imprevisível e pouco controlado Tarefas “Mestras” podem ser Repetidas Continuamente Processo Caracterizado e Bem Entendido Processo Medido e controlado Foco no Aperfeiçoamento do Processo Garantia de Qualidade de Software Adquirindo Maturidade Organizacional Regras e Responsabilidades reduzem em 15% o número de defeitos; Procedimentos Formalizados reduzem em 25% o número de defeitos; Processos Repetitivos reduzem em 35% o número de defeitos; Controles e Medições reduzem em 30% o número de defeitos; Garantia de Qualidade de Software Definindo Qualidade de Software Qualidade de Software é um processo sistemático que focaliza todas as etapas e artefatos produzidos com o objetivo de garantir a conformidade de processos e produtos, prevenindo e eliminando defeitos. Garantia de Qualidade de Software Definição Comum de Testes Teste é o processo de demonstrar que os defeitos não estão presentes. Teste é o processo de demonstrar que algo funciona corretamente. Teste é o processo de provar que determinadas coisas fazem o que deveriam fazer. Garantia de Qualidade de Software Perspectivas Diferentes Visão do Analista de Sistemas Cenários Positivos Comuns Testes para provar que algo esta correto Testes para provar que algo não esta correto Visão do Analista de Testes Cenários Positivos Estendidos Cenários Negativos Estendidos Garantia de Qualidade de Software A Correta Definição dos Testes Teste é um processo sistemático e planejado que tem por finalidade única a identificação de erros. Garantia de Qualidade de Software Onde devemos aplicar Qualidade ? Modelo Negócios Requisitos Análise e Modelagem Implemen tação Testes de Software Disponibili zação Tempo Esforço para obter Qualidade Garantia de Qualidade de Software Onde estão os Erros ? Garantia de Qualidade de Software O Custo do Erro “Erros na produção são extremamente caros”. Garantia de Qualidade de Software Processo de Garantia da Qualidade de Software Modelo Negócios Requisitos Análise e Modelagem Implemen tação Testes de Software Disponibili zação Tempo Processo de Garantia da Qualidade de Software Garantia de Qualidade de Software Maquiavel “Os homens prudentes sabem tirar proveito de todas as suas ações, mesmo daquelas a que são obrigados pela necessidade.” Garantia de Qualidade de Software Diferença entre Verificação e Validação Verificação A verificação tem o objetivo de avaliar se o que foi planejado realmente foi realizado, ou seja, se os requisitos, funcionalidades e performance documentados foram implementados. Também pode ser realizada para especificação de sistemas, para avaliar se os requisitos estão sendo documentados como deveriam e ainda prever falhas ou inconsistências entre requisitos. Garantia de Qualidade de Software Diferença entre Verificação e Validação Validação A validação tem o objetivo de avaliar se o que foi entregue atende as expectativas. Ou seja, se os requisitos, independente do que foi planejado, estão implementados para atender ao negócio (cliente). Validação final do sistema é realizada pelo cliente ou usuário. Garantia de Qualidade de Software Especificação de Requisitos Verificação de Requisitos 2 Análise e Modelagem Verificação Análise e Modelagem 3 Integração Especificada ou Modificada Validação da Integração 6 Unidade Especificada ou Modificada Validação da Unidade 5 Implementação Verificação da Implementação 4 Sistema Especificado ou Modificado Validação do Sistema 7 Testes de Validação Testes de Verificação Clientes Patrocinadores Usuários Modelo de Negócios Verificação de Negócios 1 Disponibiliza Solução Validação do Aceite 8 Garantia de Qualidade de Software Fracassos nos Processos de Qualidade Falta de um Modelo Corporativo de Qualidade; Qualidade é Aplicado Tardiamente no Processo; Ausência de Profissionais Capacitados em Qualidade; Ausência de Procedimentos de Testes Automatizados; Deficiência no Planejamento dos Testes; Foco em Testes Progressivos Aumentam Riscos; Sobre pressão, os Testes são Sacrificados Garantia de Qualidade de Software Benefícios do Processo de Qualidade Torna o Ciclo de Desenvolvimento Confiável; Garante Ações Corretivas no Ciclo de Desenvolvimento; Evita a Ingerência do Projeto de Software; Amplia as Chances de Sucesso do Projeto de Software; Amplia a Produtividade do Desenvolvimento; Evita a Propagação de Erros; Automação de Testes Reduz Custos do Projeto; Garantia de Qualidade de Software Peter Drucker "O planejamento não diz respeito a decisões futuras, mas às implicações futuras de decisões presentes" Garantia de Qualidade de Software Métodos Estruturados de Verificação Qualidade do Processo de Software Revisões Auditorias Foco nas Documentações Foco nas Atividades Garantia de Qualidade de Software Revisões de Requisitos detectam 15% dos defeitos; Revisões na Análise e Design detectam 30% dos defeitos; Revisões na Implementação detectam 20% dos defeitos; Impacto das Revisões Garantia de Qualidade de Software Tipos de Revisões Criação Validação Divulgação Autor Irtoprçlhkhg ][gfg~fçlkçj Documento Revisor Autor Irtoprçlhkhg ][gfg~fçlkçj Documento Moderador Grupo de Revisão Grupo de Acompanhamento Irtoprçlhkhg ][gfg~fçlkçj Documento Autor Reunião Acompanhamento Revisão Formal Revisão Isolada Garantia de Qualidade de Software Executando Revisões Um tópico é definido e será escopo das discussões; Uma questão é levantada por um revisor; A questão é discutida e avaliada; Os revisores confirmam a existência do defeito; O defeito é registrado e detalhado para que seja corrigido pelos autores; Outras questões são levantadas até que todas tenham sido analisadas; Um novo tópico é identificado até que todos tenham sido discutidos; Garantia de Qualidade de Software Um Instrumento de Verificação Verificação de Negócios Verificação de Requisitos Verificação Análise e Modelagem Verificação da Implementação Check-List Verificação de Negócios Check-List Verificação Análise e Modelagem Check-List Verificação de Requisitos Check-List Verificação da Implementação Garantia de Qualidade de Software Check-List do Diagramas UML q Diagramas de Classes - Todas as classes possuem nome e descrição adequados. OK Não OK - Todos os atributos da classe possuem nome e descrição adequados. OK Não OK - Todos os serviços da classe possuem nome e descrição adequados. OK Não OK q Diagrama de Estado - Todas as transições de estado possuem um serviço ou evento associado. OK Não OK - Todos os estados possuem nome e descrição adequados. OK Não OK - Todas as transições de estado refletem o real ciclo de vida da classe. OK Não OK q Diagramas de Componentes - As “Packages” agrupam componentes com mesmas características. OK Não OK - Cada componente agrupa classes de única camada: user, business, data OK Não OK - Todas as dependências dos Componentes foram estabelecidas. OK Não OK Garantia de Qualidade de Software Testando cada Fase do Processo de Software Modelo de Negócios Implementação Análise e Modelagem Revisar Contexto do Mercado e Necessidades Cliente; Revisar Riscos do Projeto; Auditar Alternativas de Execução do Projeto; Revisar Estudo de Viabilidade do Projeto; Revisar Arquitetura da Aplicação; Revisar o Modelo Estático do Projeto de Software; Revisar o Modelo Dinâmico do Projeto de Software; Revisar Nível de Componentização; Revisar Nível de Reutilização; Modelo de Negócios; Análise de Riscos; Arvore de Decisão; Estudo de Viabilidade; Arquitetura da Aplicação; Modelos Estáticos; Modelos Dinâmicos; Modelos Distribuição; Código-Fonte; Componentes; Manual do Usuário; Revisar o Código-Fonte; Avaliar Complexidade do Código-Fonte; Auditar Rastreabilidade entre Componentes;. Revisar Manual do Usuário; Especificação Requisitos; Rastreabilidade; Revisar Especificação de Requisitos Funcionais; Revisar Especificação de Requisitos Não-Funcionais; Revisar Priorização de Requisitos; Auditar Rastreabilidade de Requisitos; Especificação de Requisitos Fase da Verificação Principais Produtos Principais Atividades da Fase de Verificação Garantia de Qualidade de Software Critério de Finalização da Revisão do Código-Fonte Complexidade Ciclomática (ou complexidade condicional) Avaliação da Complexidade Percentual Máximo Permitido < 5 Simples 100 % 5-10 Moderado 20 % 11-20 Difícil 5 % 21-50 Muito Difícil Não Permitido > 50 Impossível testar Não Permitido Garantia de Qualidade de Software Henry Ford “O insucesso é apenas uma oportunidade para recomeçar com mais inteligência.” Garantia de Qualidade de Software Estratégias de Testes de Software Caixa Branca Caixa Preta Garantia de Qualidade de Software Caixa-Branca Término do Processamento Início do Processamento Caminho A Caminho B Garantia de Qualidade de Software Caixa-Preta Resultados Gerados Estímulos Produzidos Garantia de Qualidade de Software Abordagens Fundamentais dos Testes Caixa Branca Caixa Preta Testes Baseados na Estrutura Interna Testes Baseados nos Requisitos Garantia de Qualidade de Software Progressividade e Regressividade dos Testes Cenário Versão “A” Cliente VIP Cliente Normal Pedidos Cliente VIP Cliente Normal Pedidos Cliente Ocasional Cliente VIP Cliente Normal Pedidos Cliente Ocasional Cenário Versão “B” Cenário Versão “B.1” Erro ! Garantia de Qualidade de Software Categorias dos Testes - simular saques acima do saldo disponível; - simular saques com cartão vencido; - avaliar se a duração do saque dura até 30 seg. num universo de 5 milhões de correntistas e 100 milhões de movimentação bancária; - simular saque com defeito no “cash-dispenser”; - simular saque com impressora do fornecedor A, B e C; - avaliar se a senha do cartão esta sendo requisitada antes e depois da transação; - simular 2 saques simultâneos na mesma conta-corrente; - simular saque na conta-poupança; - avaliar se a senha adicional e randômica esta sendo requisitada no início da operação. - simular saques no Windows 95, 98, NT e 2000; - avaliar se todas as telas possuem ajuda; Cenários de Testes Transferência Depósito Saque Garantia de Qualidade de Software Organizando em Categorias - simular saques acima do saldo disponível; - simular saque na conta-poupança; - simular saque acima do valor do limite da conta; - simular saque com valores não múltiplos das notas; - simular saque com valores não múltiplos das notas; Funcional - avaliar se a duração do saque dura até 30 seg. num universo de 5 milhões de correntistas e 100 milhões de movimentação bancária; - garantir que manipulação com dispositivos físicos no saque não ultrapassem 10 seg. da operação; Performance - avaliar se todas as telas possuem ajuda; - avaliar se mensagens são claras e objetivas; - avaliar se o padrão visual é mantido em todos os momentos; - avaliar se todas as operações possuem caminhos de fuga; Usabilidade - simular saques com cartão vencido; - avaliar se a senha do cartão esta sendo requisitada antes e depois da transação; - avaliar se a senha adicional e randômica esta sendo requisitada no início da operação; - simular saque noturno acima do valor permitido; Segurança - simular 2 saques simultâneos na mesma conta-corrente; - simular 10.000 saques simultâneos; Carga e Concorrência - disparar processo de instalação emergencial; Contingência - simular saque com defeito no “cash-dispenser; - simular saque com defeito na impressora; - simular saque com falha de conexão com a central; - simular saque com queda de energia; Recuperação - simular saque com impressora do fornecedor A, B e C; - simular saques no Windows 95, 98, NT e 2000; - simular saque com impressora do fornecedor X, Y e Z; Configuração Garantia de Qualidade de Software Entendendo as Categorias Desempenho Portabilidade Configuração Funcional Recuperação Usabilidade Saque Garantia de Qualidade de Software Priorizando as Categorias Características da Aplicação Importância 01. Funcional Essencial 02. Desempenho Médio Impacto 03. Confiabilidade/Disponibilidade Alto Impacto 04. Segurança Essencial 05. Carga e Concorrência Alto Impacto 06. Usabilidade Médio Impacto 07. Compatibilidade Essencial 08. Portabilidade Baixo Impacto 09. Contingência Alto Impacto 10. Instalação Médio Impacto 11. Distribuição Alto Impacto 12. Recuperação Alto Impacto Garantia de Qualidade de Software Casos de Testes de Caixa-Branca Início do Processamento A C F D E Término do Processamento B I J L G H Abordagem Caixa-Branca A B F E A B C D E A B I J L A G I J L H Caso de Teste 1 Caso de Teste 2 Caso de Teste 3 Caso de Teste 4 Garantia de Qualidade de Software Casos de Testes de Caixa-Preta Requisito A Caso de Teste A.1 Caso de Teste A.2 Caso de Teste A.3 Caso de Teste A.4 Requisito B Caso de Teste B.1 Caso de Teste B.2 Caso de Teste B.3 Caso de Teste B.4 Abordagem Caixa-Preta Garantia de Qualidade de Software Método de Decomposição de Requisitos Sistema de Vendas Realizar Pagamentos Cenários Alternativos Cliente realiza pagamento com cheque. Cliente realiza pagamento com cartão de crédito. Cliente realiza pagamento parcelado. Cliente realiza pagamento da última parcela. Cliente realiza pagamento adiantado. Cliente realiza pagamento em atraso. Cenário Primário Cliente realiza pagamento em dinheiro. Cenários de Exceção Cliente realiza pagamento com cartão inválido. Cliente realiza pagamento com cheque bloqueado. Cliente realiza pagamento com cheque e histórico de mal pagador. Garantia de Qualidade de Software Método de Análise de Documentos Diagrama de Casos de Uso Cenários Positivos E A F E A Cenários Negativos B A C A D A Casos de Testes Identificados B C D E A F Diagrama de Atividades Garantia de Qualidade de Software Método de Análise de Documentos Cenários Positivos Casos de Testes Identificados Disponível Emprestado Restauração Refugado Análise Catalogação Doação Classificação Empréstimo Devolução Refugo Restaurar Disponibiliza Recuperação Destruição Diagrama de Estados Compra 1 2 3 6 5 4 1 2 2 3 3 4 4 2 4 5 5 6 6 1 1 Cenários Negativos 21 3 2 4 3 5 4 6 6 4 5 Garantia de Qualidade de Software Estágios dos Testes de Software Teste de Unidade Teste de Aceitação Teste de Sistema Teste de Baixo Nível Teste de Alto Nível Estratégia Caixa-Branca; Testam partes do software; Requer conhecimento da estrutura interna; Executado pelo desenvolvedor ou profissional de teste. Estratégia de Caixa-Preta; Os testes são aplicados no software como um todo; Não requer conhecimento da estrutura interna do software; Requer ambiente muito semelhante ao da produção; Deve ser executado por um grupo de teste independente. Estrutura Interna; Funcionalidade; Usabilidade Segurança; Funcionais; Não Funcionais; Performance; Instalação; Recuperação; Carga; Funcional; Usabilidade; Segurança; Estratégia de Caixa-Preta; Os testes são aplicados no software como um todo; Não requer conhecimento da estrutura interna do software; Requer ambiente muito semelhante ao da produção; Deve ser executado pelos usuários finais. Interfaces; Dependências entre Componentes; Estratégia de Caixa-Branca; Testam integrações entre partes do software; Requer conhecimento da arquitetura interna do software; Executado pelo desenvolvedor ou profissional de teste. Teste de Integração Fase da Validação Categorias de Testes Aplicada Características da Fase de Validação Garantia de Qualidade de Software Teste de Unidade Unidade E Unidade H Unidade I Unidade J Arquitetura Completa do Aplicativo Bottom-Up Arquitetura do Teste da Unidade E Unidade A Unidade D Unidade E Unidade H Unidade G Unidade F Unidade I Unidade J Unidade B Unidade C Controlador Testes-E Garantia de Qualidade de Software Teste de aceite Aceite Formal Implantação Total Todos os clientes recebem o software devidamente testado. Implantação BETA Clientes selecionados recebem o software para operar em seu ambiente. Clientes planejam e realizam os testes do software. Aceite Formal ALPHA Teste BETA Teste Todos Clientes Clientes são convidados a operar o software no fornecedor. Implantação ALPHA Aceite da Solução Distribuição Garantia de Qualidade de Software Testes de Software nos vários Ambientes Ambiente de Desenvolvimento Ambiente Teste e Homologação Ambiente de Produção Em Teste Em Desenvolvimento Em Produção Em Homologação Ciclo de Vida do Software Requisitos56%Análise e Modelagem27%Implementação7%Outros10% Gráf1 Requisitos Análise e Modelagem Implementação Outros 56 27 7 10 Plan1 Requisitos 56 Análise e Modelagem 27 Implementação 7 Outros 10 Plan2 Plan3
Compartilhar