A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

(Conceitos Fundamentais)

Apresentações semelhantes


Apresentação em tema: "(Conceitos Fundamentais)"— Transcrição da apresentação:

1 (Conceitos Fundamentais)
Apresentação  Garantia da Qualidade de Software (Conceitos Fundamentais) por Alexandre Bartie

2 Baseado no Livro O livro apresenta os seguintes tópicos:
Introdução à Qualidade de Software; Processo de Garantia da Qualidade de Software; Garantindo a Qualidade do Processo (Testes de Verificação); Garantindo a Qualidade do Produto (Testes de Validação); Gerenciamento do Testware; Estruturas de Documentação; Métricas da Qualidade de Software; Aplicações Reais.

3 Tópicos Introdução à Qualidade de Software;
Processo de Garantia da Qualidade de Software; Garantindo a Qualidade do Processo; Garantindo a Qualidade do Produto; Métricas de Qualidade de Software

4 Criando Cultura

5 Inconsciente / Incompetente

6 Consciente / Incompetente

7 Consciente / Competente

8 Inconsciente / Competente

9 Objetivo 1 Conceitos Básicos
INCONSCIENTE INCOMPETENTE CONSCIENTE COMPETENTE Pior Situação O Começo Aprendizado Cultura Pior Situação O Começo HOJE

10 Objetivo 2 Identificar Grupos de Interesse
Revisões de Artefatos; Auditorias de Qualidade; Testes de Unidades; Testes Integrados; Testes de Sistema; Testes de Aceite; Planejamento dos Testes; Automação dos Testes;

11 Próximos Passos Pior Situação O Começo Aprendizado Cultura FUTURO
INCONSCIENTE CONSCIENTE CONSCIENTE INCONSCIENTE INCOMPETENTE INCOMPETENTE COMPETENTE COMPETENTE FUTURO

12 Introdução à Qualidade de Software
Parte I Introdução à Qualidade de Software

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 A Busca pela Qualidade Primórdios do Desenvolvimento 1957 Anos 70 1979
Navegação pelo código; Correção de erros conhecidos; 1957 Processo de Detecção de Erros; Produto Acabado; Anos 70 Engenharia de Software; Não existe consenso sobre testes; 1979 Myers – Objetivo é encontrar erros ; Anos 80 Qualidade de Software; Surgem os 1o.s Padrões Mundiais; Anos 90 Ferramentas de Testes; Bug Ano 2000;

15 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.

16 Os custos da Falta de Qualidade
02/07/ h03 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 Grande Metodologias de Desenvolvimento Interno Moderado Sofisticado Metodologias de Qualidade e Testes Emergente Organizações de Qualidade e Testes Poucas Algumas Muitas Importância da Qualidade Algum Significante Tamanho do Time de Qualidade e Testes

18 Modelo CMM Nível 1: Inicial Nível 2: Repetível Nível 3: Definido
Gerenciado Nível 5: Otimizado Anárquico Cultural Padronizado Mensurável 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

19 Rational Unified Process (RUP)
                                                                                                                                Rational Unified Process (RUP)

20 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;

21 Qualidade de Software

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 Produto Testes que garantem a Qualidade do Processo 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
Testes para provar que algo não esta correto Visão do Analista de Testes Cenários Positivos Estendidos Cenários Negativos Estendidos Visão do Analista de Sistemas Cenários Positivos Comuns Testes para provar que algo esta correto

26 Perspectivas Diferentes

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

29 Onde estão os Erros ?

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 “Erros na produção são extremamente caros”.
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

33 O Custo da Qualidade ... Custo do Projeto Desenvolvimento Custo da
Não-Conformidade Conformidade Prevenção de Defeitos Metodologias; Treinamento; Ferramentas; Políticas; Procedimentos; Planejamento; Análises; Métricas; Rel.de Qualidade; Projetos de Inovação; Detecção de Defeitos Revisões Problema; Requisitos; Modelagem; Planos de Testes; Scripts de Testes; Inspeção de Código; Testes (1a. execução); Auditorias; Re-Revisões; Re-Testes; Correção Código; Documentação; Re-Estruturação; Re-Distribuição versão; Atrasos Cronogramas; Falhas da Produção; ... Existe uma co-relação entre os custos da não-conformidade com os investimentos em prevenção de defeitos. Quanto maior estes investimentos, menor a incidência das não-conformidades.

34 Processo de Garantia de Qualidade de Software
Parte II Processo de Garantia de 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 2 Análise e Modelagem 3 Integração Especificada ou Modificada Validação da 6 Unidade 5 Implementação 4 Sistema Especificado ou Modificado do 7 Testes de Validação Testes de Verificação Clientes Patrocinadores Usuários Modelo Negócios 1 Disponibiliza Solução Aceite 8

37 Desenvolvimento Iterativo
Modelo Negócios Requisitos Análise e Design Implemen tação Testes Disponibili zação Evolução I II III Evo L u ç ão Produto Final

38 Um novo Ciclo de Qualidade em cada nova Iteração
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 #2 #3 #N

39 Reaproveitamentos dos testes em cada nova iteração
Teste Incremental Testes em Novas Funcionalidades Testes em Funcionalidades Anteriores Solução X Iteração 1 Iteração 2 Iteração 3 Iteração N - Tempo Reaproveitamentos dos testes em cada nova iteração

40 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

41 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;

42 Garantindo a Qualidade do Processo
Parte III Garantindo a Qualidade do Processo

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 Impacto das Revisões 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;

46 Grupo de Acompanhamento
Tipos de Revisões Criação Validação Divulgação Autor Irtoprçlhkhg ][gfg~fçlkçj Documento Revisor Moderador Grupo de Revisão Grupo de Acompanhamento Reunião Acompanhamento Revisão Formal Isolada

47 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;

48 Revisões Eficientes Profundidade das Análises e Discussões;
Uniformidade das Atividades; Continuidade e Freqüência; Revisores Experientes; Presença de um Moderador nas Reuniões; Revisões Curtas e Bem Focadas; Identificar Problemas, e Não Resolvê-los; Concluir as Revisões;

49 Probabilidade de inserção de erros
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

51 Check-List Um Instrumento de Verificação
Negócios Requisitos Análise e Modelagem da Implementação Check-List

52 Check-List do Diagramas UML
Exemplo de Check-list 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. - Todos os serviços da classe possuem nome e descrição adequados. q    Diagrama de Estado - Todas as transições de estado possuem um serviço ou evento associado. - Todos os estados possuem nome e descrição adequados. - Todas as transições de estado refletem o real ciclo de vida da classe. q    Diagramas de Componentes - As “Packages” agrupam componentes com mesmas características. - Cada componente agrupa classes de única camada: user, business, data - Todas as dependências dos Componentes foram estabelecidas.

53 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 Requisitos Fase da Verificação Principais Produtos Principais Atividades da Fase de Verificação

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

55 Garantindo a Qualidade do Produto
Parte IV Garantindo a Qualidade do Produto

56 Garantindo a Qualidade do Produto
“O insucesso é apenas uma oportunidade para recomeçar com mais inteligência.” Henry Ford

57 Testes de Software

58 Estratégias de Testes de Software
Caixa Branca Caixa Preta

59 Caixa-Branca Término do Processamento Início do Processamento
Caminho A Caminho B

60 Caixa-Preta Resultados Gerados Estímulos Produzidos

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 Normal Pedidos Ocasional Cenário Versão “B” Cenário Versão “B.1” Erro !

63 Categorias de Testes

64 Categorias dos Testes Cenários de 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; 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 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

66 Entendendo as Categorias
Desempenho Portabilidade Configuração Funcional Recuperação Usabilidade Saque

67 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 05. Carga e Concorrência 06. Usabilidade 07. Compatibilidade 08. Portabilidade Baixo Impacto 09. Contingência 10. Instalação 11. Distribuição 12. Recuperação

68 Casos de Testes

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 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

71 Obtendo Casos de Testes

72 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.

73 Método de Análise de Documentos
Diagrama de Casos de Uso Cenários Positivos E A F Cenários Negativos B C D Casos de Testes Identificados Diagrama de Atividades

74 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 Cenários Negativos

75 Estágios dos Testes

76 Estágios dos Testes de Software
Teste de Unidade Aceitação 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; 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; Integração Fase da Validação Categorias de Testes Aplicada Características da Fase de Validação

77 Arquitetura Completa do Aplicativo Arquitetura do Teste da Unidade E
Teste de Unidade Unidade E Unidade H I J Arquitetura Completa do Aplicativo Bottom-Up Arquitetura do Teste da Unidade E Unidade A Unidade D Unidade H Unidade G Unidade F Unidade J Unidade B Unidade C Controlador Testes-E

78 Teste de Integração Componentes de Software Componentes de Testware
Integração Nível 3 Integração Nível 2 Integração Nível 1 S T Componentes de Testware Componentes de Software

79 << On-Line >>
Teste de Sistema Sistema Alvo D E << Batch >> << On-Line >> F <Simulador> A B C

80 Teste de Aceite Aceite da Solução Distribuição Aceite Formal ALPHA
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 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
Desenvolvimento Teste e Homologação Produção Em Teste Ciclo de Vida do Software

82 Métricas de Qualidade de Software
Parte IV Métricas de Qualidade de Software

83 Métricas de Qualidade de Software
“Somos o que repetidamente fazemos. A excelência, portanto, não é um feito, mas um hábito." Aristóteles

84 Indicadores de Cobertura
Cobertura da Estrutura Interna Cobertura de Requisitos

85 Critérios de Cobertura
90 % 80 % 70 % Criticidade dos Sistemas Alta Criticidade 15 % 60 % Cobertura Requisitos Código-Fonte 25 % 75 % Baixa 85 % Média

86 Indicadores de Eficiência dos Testes
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 Validação Total de Erros da Validação

87 Distribuição de Defeitos

88 Distribuição de Defeitos por Etapas

89 Distribuição de Defeitos por Categoria

90 Distribuição de Defeitos por Prioridade
Alta Prioridade Média Baixa Urgente 5 10 15 20

91 Distribuição de Defeitos por Fornecedor

92 Distribuição de Defeitos por Componentes

93 Distribuição de Defeitos por Idade

94 Comportamento do Defeito

95 Ferramentas de Análise

96 Histórico de Informações
Jan/00 5 10 15 20 Fev/00 Mar/00 Abr/00 Mai/00 Jun/00 Jul/00 Ago/00 Troca de Tecnologia Produtividade Retrabalho

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

98 Diagrama de Paretto 40 % 30 % 20 % 10 % 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 %

99 Para Refletir ...

100

101 ??? Duvidas ??? Encaminhar para Alexandre Bartie tel. (11) cel. (11) Skype-me !


Carregar ppt "(Conceitos Fundamentais)"

Apresentações semelhantes


Anúncios Google