O documento apresenta os conceitos fundamentais de garantia da qualidade de software, incluindo introdução à qualidade de software, processo de garantia da qualidade, garantindo a qualidade do processo e do produto através de testes, métricas e aplicações reais. Aborda tópicos como cultura da qualidade, modelos de maturidade, processos iterativos e incrementais, e métodos de verificação como revisões e checklists.
13. Introdução à Qualidade de Software “ Se tivesse seis horas para derrubar uma árvore, eu passaria as primeiras quatro horas afiando o machado.” Abraham Lincoln
14.
15.
16. 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.
17. Cenário Atual do Desenvolvimento de Software Evolução das Organizações Desenvolvedoras de Software Características 1960 1980 2000 Tamanho do Software Pequeno Médio Muito Grande Complexidade do Software Baixa Média Alta Tamanho do Time de Desenvolvimento Pequeno Médio Grande Metodologias de Desenvolvimento Interno Moderado Sofisticado Metodologias de Qualidade e Testes Interno Emergente Sofisticado Organizações de Qualidade e Testes Poucas Algumas Muitas Importância da Qualidade Pequeno Algum Significante Tamanho do Time de Qualidade e Testes Pequeno Pequeno Grande
18. 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
22. 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.
23. Dimensão da Qualidade do Software Garantia da Qualidade de Software + Qualidade do Processo Qualidade do Produto Testes que garantem a Qualidade do Processo Testes que garantem a Qualidade do Produto
24. 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 .
25. 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
27. A Correta Definição dos Testes Teste é um processo sistemático e planejado que tem por finalidade única a identificação de erros.
28. 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
30. O Custo da Propagação dos Defeitos Requisitos Análise e Modelagem Teste de Software Código Produção Ciclo de Desenvolvimento de Software
31. O Custo do Erro “ Erros na produção são extremamente caros”.
32. Qualidade em Todo o Ciclo de Desenvolvimento 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
35. Processo de Garantia de Qualidade de Software “ Os homens prudentes sabem tirar proveito de todas as suas ações, mesmo daquelas a que são obrigados pela necessidade.” Maquiavel
36. Modelo de Qualidade em “U” 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
37. Desenvolvimento Iterativo Modelo Negócios Requisitos Análise e Design Implemen tação Testes Disponibili zação Evolução I Modelo Negócios Requisitos Análise e Design Implemen tação Testes Disponibili zação Evolução II Modelo Negócios Requisitos Análise e Design Implemen tação Testes Disponibili zação Evolução III Evo L u ç ão Modelo Negócios Requisitos Análise e Design Implemen tação Testes Disponibili zação Produto Final
38. Qualidade Iterativa Iteração 2 Iteração 3 Iteração N Iteração 1 ... Tempo Um novo Ciclo de Qualidade em cada nova Iteração Ciclo da Qualidade #1 Ciclo da Qualidade #2 Ciclo da Qualidade #3 Ciclo da Qualidade #N
39. Teste Incremental Testes em Novas Funcionalidades Testes em Funcionalidades Anteriores Solução X Solução X Solução X Solução X Iteração 1 Iteração 2 Iteração 3 Iteração N - Tempo Reaproveitamentos dos testes em cada nova iteração
43. Garantindo a Qualidade do Processo "O planejamento não diz respeito a decisões futuras, mas às implicações futuras de decisões presentes" Peter Drucker
44. Métodos Estruturados de Verificação Qualidade do Processo de Software Revisões Auditorias Foco nas Documentações Foco nas Atividades
45.
46. 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
47.
48.
49. Exemplo de Revisões Complexidade Ciclomática Avaliação da Complexidade Esforço de Manutenção e Teste Probabilidade de inserção de erros < 5 Simples Baixo Esforço 1 % 5-10 Moderado Médio Esforço 5 % 11-20 Difícil Grande Esforço 10 % 21-50 Muito Difícil Muito Complexo 30 % > 50 Impossível testar Refazer -
50. Revisão do Código-Fonte Complexidade Ciclomática 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
51. Check-List 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
52. Exemplo de Check-list Check-List do Diagramas UML 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 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 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
53.
54. Critério de Finalização da Revisão do Código-Fonte Complexidade Ciclomática 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
61. Abordagens Fundamentais dos Testes Caixa Branca Caixa Preta Testes Baseados na Estrutura Interna Testes Baseados nos Requisitos
62. 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 !
64. 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
65. 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
69. 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
70. 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
73. 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
77. 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
78. Teste de Integração Integração Nível 3 Integração Nível 2 Integração Nível 1 S T S T S T S T S T S T S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S T S T S S S S S S S S S S S S S S S S S T T S Componentes de Testware Componentes de Software
79. Teste de Sistema Sistema Alvo Sistema D Sistema E << Batch >> << Batch >> << On-Line >> << On-Line >> Sistema F << Batch >> << Batch >> << On-Line >> << On-Line >> << Batch >> <Simulador> Sistema A <Simulador> Sistema B <Simulador> Sistema C
80. 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
81. 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
85. Critérios de Cobertura 90 % 80 % 70 % Criticidade dos Sistemas Alta Criticidade 15 % 60 % Cobertura Requisitos Cobertura Código-Fonte 25 % 75 % Baixa Criticidade 75 % 90 % 85 % Média Criticidade
86. Indicadores de Eficiência dos Testes Eficiência da Verificação Total de Erros da Validação + Total de Erros em Produção Total de Linhas do Código-Fonte ou Total de Requisitos Eficiência da Validação Total de Erros da Validação Total de Erros da Validação + Total de Erros em Produção
97. Diagrama de Causa e Efeito Falha no Planejamento dos Testes Erros no Ambiente de Produção Ausência de Testes Regressivos Homologação Manual Implantação Emergencial Falha na Automação dos Testes
98. Diagrama de Paretto 10 % 20 % 30 % 40 % Falta de Testes Regressivos Homologação Manual Falha na Automação dos testes Falha no Planejamento dos Testes Implantação Emergencial 45 % 33 % 13 % 7 % 2 %