Qualidade de Produtos de Software Renata Bezerra (rbsa@cin.ufpe.br) Virgínia Chalegre...

Post on 07-Apr-2016

216 views 3 download

Transcript of Qualidade de Produtos de Software Renata Bezerra (rbsa@cin.ufpe.br) Virgínia Chalegre...

Qualidade de Produtos de Software

Renata Bezerra (rbsa@cin.ufpe.br)Virgínia Chalegre (vcc@cin.ufpe.br)

Qualidade de Produtos de Software

Roteiro Introdução Modelos de qualidade de produto Teste de Software Inspeção de Software Modelos de Maturidade de Testes de

Software Conclusão Referências

Qualidade de Produtos de Software

IntroduçãoA indústria busca continuamente

aprimorar seus produtos de acordo com os padrões mais rigorosos em uso no mundo.

Maior qualidade = cliente satisfeito!

Qualidade de Produtos de Software

IntroduçãoUm problema fundamental da

qualidade de software é definir claramente os objetivos que se pretende atingir com um projeto.

Qualidade de Produtos de Software

Modelos de Qualidade de

Produto

Qualidade de Produtos de Software

ISO 9126 ISO/IEC 9126-1:2001

Modelo de Qualidade ISO/IEC TR 9126-2:2003

Métricas Externas ISO/IEC TR 9126-3:2003

Métricas Internas ISO/IEC TR 9126-4:2004

Métricas de Qualidade em Uso

Qualidade de Produtos de Software

ISO 9126 - 1

Qualidade de Produtos de Software

ISO 9126

influencia influencia influenciaQualidade

de processo

Medidas do processo

depende de

Atributos de

qualidade interna

Medidas internas

depende de

Atributos de

qualidade externa

Medidasexternas

depende de

Processo Produto de Software

Atributos de

qualidade no uso

Medidas de qualidade no

uso

Contextos de uso

Qualidade de Produtos de Software

ISO 12119

Avaliação de software de prateleira

Estabelece os requisitos de qualidade

Fornece instruções para teste, considerando estes requisitos

Qualidade de Produtos de Software

ISO 121193. Requisitos de qualidade 3.1. Descrição do Produto 3.2. Documentação do usuário 3.3. Programas e dados4. Instruções para teste 4.1. Pré-requisitos de teste 4.2. Atividades de teste 4.3. Registro de teste 4.4. Relatório de teste

Qualidade de Produtos de Software

ISO 14598É um guia para avaliação de

produtos de software, baseado na utilização prática da norma ISO 9126

Contém conceitos para avaliar a qualidade de software e define um modelo de processo de avaliação genérico

Qualidade de Produtos de Software

ISO 14598Norma Nome Finalidade

14598-1 Visão Geral

Ensina a utilizar as outras normas do grupo. Define os termos técnicos utilizados nas demais partes, contém requisitos gerais para especificação e avaliação de qualidade de software e esclarece os conceitos gerais.

14598-2 Planejamento e Gerenciamento

Sobre como fazer uma avaliação, de forma geral

14598-3 Guia para Desenvolvedores Como avaliar sob o ponto de vista de quem desenvolve

14598-4 Guia para Aquisição Como avaliar sob o ponto de vista de quem vai adquirir

14598-5 Guia para Avaliação Como avaliar sob o ponto de vista de quem certifica

14598-6 Módulos de Avaliação Detalhes sobre como avaliar cada característica

Qualidade de Produtos de Software

Projeto SQuaRESoftware product Quality

Requirements and Evaluation Manual de utilização e

reorganização das normas ISO/IEC 9126 e ISO/IEC 14598.

Qualidade de Produtos de Software

Projeto SQuaRE

Requisitos de Qualidade

2503n

Modelo de Qualidade

2501n

Avaliação2504nGerenciamento

de Qualidade 2501n

Medições2501n

Qualidade de Produtos de Software

Teste de Software

Qualidade de Produtos de Software

Verificação e ValidaçãoV & V – Verificação e Validação

Verificação avalia um produto e determina se está de acordo com os requisitos

Validação procura garantir que o produto atenda às necessidades dos clientes

Teste de Software – técnica dinâmica de V & V

Inspeção de Software – técnica estática de V & V

Qualidade de Produtos de Software

ObjetivosExecutar o sistema de modo a

encontrar defeitosGarantir que o sistema faz aquilo

que é suposto fazer

Qualidade de Produtos de Software

Abordagens de TestesAbordagem Funcional (Caixa Preta)

Software visualizado como uma “caixa preta”

Considera os dados de entrada e observa se a saída está de acordo com o esperado

Qualidade de Produtos de Software

Abordagens de TestesAbordagem Estrutural (Caixa Branca)

Interesse no que acontece “dentro da caixa”

Avalia as funcionalidades internas dos componentes do software

Qualidade de Produtos de Software

Estágios de Testes Teste de Unidade – testa a estrutura interna e

comportamento de componentes individuais

Teste de Integração – as unidades da etapa anterior são testadas de forma integrada

Teste de Sistema – testa o funcionamento da aplicação como um todo

Teste de Aceitação – testes realizados pelos usuários do sistema na tentativa de garantir a sua confiança

Qualidade de Produtos de Software

Tipos de Testes Teste Funcional – focado nas regras de negócio do

sistema

Teste de Recuperação de Falha – sistema forçada a falhar para analisar o seu comportamento

Teste de Segurança – verifica se o sistema previne acesso não autorizado

Teste de Carga - mede o comportamento do sistema quando este é submetido a níveis altos de carga

Teste de Performance - verifica o rendimento de um sistema

Qualidade de Produtos de Software

Tipos de Testes

Teste de Stress - avalia o comportamento do sistema diante de condições que ultrapassem o limite especificado nos requisitos

Teste de Configuração - testa o funcionamento do sistema em diferentes configurações de hardware/software

Teste de Usabilidade – verifica se o produto tem uma interface amigável

Teste de Regressão – re-execução de testes para validar correções realizadas

Qualidade de Produtos de Software

Processo de TestesPlanejamento e ControleAnálise e Projeto Implementação e ExecuçãoAvaliação do Critério de Saída e

RelatórioAtividade de Encerramento de

Teste

Qualidade de Produtos de Software

Processo de TestesPlanejamento e Controle

Determinar o escopo e riscos e identificar os objetivos de teste

Determinar a estratégia de testeDefinir recursos, humanos e

materiaisElaborar cronograma de testesEstabelecer os critérios de saída

Qualidade de Produtos de Software

Processo de TestesAnálise e Projeto

Revisar a base de testesIdentificar e descrever casos de testeEstruturar procedimentos de testeAvaliar a capacidade de testar os

requisitos

Qualidade de Produtos de Software

Processo de Testes Implementação

Implementar componentes de apoioCriar suítes de testeImplementar e verificar o ambiente

Qualidade de Produtos de Software

Processo de Testes Execução

Executar as suítes de teste e casos de teste individuais

Seguir as estratégias de teste definidas na etapa de planejamento

Criar um log com as saídas da execução dos testes

Comparar resultados obtidos com resultados esperados

Registrar os defeitos em um repositório centralizado

Realização de testes de regressão

Qualidade de Produtos de Software

Processo de TestesAvaliação do critério de saída e

relatórioChecar os logs de testesVerificar necessidade de inclusão de

mais testes ou mudança nos critérios de saída

Escrever um relatório de resumo de testes para os stakeholders

Qualidade de Produtos de Software

Processo de TestesAtividades de Encerramento de teste

Garantir que todos os problemas reportados foram realmente resolvidos

Finalizar e arquivar os artefatos produzidos

Repassar os artefatos para a equipe de manutenção

Avaliar como se deu o processo de testes e analisar as lições aprendidas

Qualidade de Produtos de Software

Processo de Testes X Processo de

Desenvolvimento de SoftwareModelo V

Qualidade de Produtos de Software

Inspeção de Software

Qualidade de Produtos de Software

Definição Técnica estática do processo de V & V São efetuadas revisões no sistema com o

objetivo de encontrar defeitos Tipicamente são analisados artefatos

como: Especificação de Requisitos Projetos e especificações de interface com

usuário Projeto de Arquitetura, Projeto de alto nível e

Projeto detalhado Código fonte Planos de Teste e casos de Teste

Qualidade de Produtos de Software

ObjetivosIdentificar quaisquer desvios de

padrõesSugerir oportunidades de melhoria

para o autorPromover a troca de experiência

entre os participantes

Qualidade de Produtos de Software

A Equipe de Inspeção Autor – desenvolvedor do artefato que

será inspecionado Inspetor – examina o produto na

tentativa de encontrar defeitos Leitor – apresenta o artefato aos demais

participantes Escritor – registra as informações sobre

cada defeito encontrado Moderador – possui o papel mais crítico

de todo o processo, liderando toda a equipe

Qualidade de Produtos de Software

O Processo de Inspeção

Qualidade de Produtos de Software

O Processo de InspeçãoPlanejamento

O moderador é responsável por:Selecionar a equipe de inspeçãoChecar se o produto está pronto para

inspeçãoOrganizar a reuniãoDelegar as atividades de cada membroGarantir a completude dos materiais a serem

inspecionadosO autor e o moderador decidem quantas

reuniões de inspeção serão requeridas

Qualidade de Produtos de Software

O Processo de InspeçãoVisão Geral

O autor apresenta as principais características do produto a ser inspecionado

É uma etapa opcional e depende da necessidade identificada pelo moderador

Qualidade de Produtos de Software

O Processo de InspeçãoPreparação

Os inspetores analisam o produto de trabalho em busca de não-conformidades

Fazem as anotações necessáriasO moderador analisa os logs antes da

reunião para determinar se a equipe está preparada para suas tarefas

Qualidade de Produtos de Software

O Processo de InspeçãoReunião

O leitor realiza a leitura e interpretação do produto

O autor tira quaisquer dúvidas que surgirem

A equipe de inspetores identifica os possíveis defeitos

A reunião não deve passar de duas horas

Não devem ser discutidas formas de corrigir os defeitos

Qualidade de Produtos de Software

O Processo de InspeçãoRe-Trabalho

O autor corrige os defeitos identificados na reunião

Defeitos considerados mais relevantes devem ser corrigidos primeiro

Qualidade de Produtos de Software

O Processo de InspeçãoAcompanhamento

O moderador:Analisa o material corrigido pelos autoresVerifica se os defeitos foram corrigidos

com sucessoDecide se uma nova inspeção é

necessária

Qualidade de Produtos de Software

Testes e Inspeção No teste

Você começa com um problema Em seguida tem que encontrar o bug Depois, deve imaginar a correção Por fim, implementa e testa a correção

Nas Inspeções Você vê o defeito Então imagina a correção Finalmente, implementa e revisa a correção

Qualidade de Produtos de Software

Testes e InspeçãoNos Testes

Se o programa produziu um resultado não usual, você precisa

Detectar que aquilo não foi usualDescobrir o que o sistema estava

fazendoEncontrar em que ponto estava no

programaDescobrir que defeito poderia causar

este comportamento estranho

Qualidade de Produtos de Software

Testes e Inspeção Nas Inspeções

Você segue sua própria lógica Quando encontra um defeito, sabe

exatamente onde está Você sabe o que o programa deveria fazer

e não está fazendo Logo, você sabe porque isto é um defeito Portanto, está em melhor posição para

imaginar uma correção completa e eficaz Quando combinadas com testes, o número

de defeitos encontrados pode superar os 90% de defeitos existentes

Qualidade de Produtos de Software

Modelo de Maturidade de

Testes de Software

Qualidade de Produtos de Software

TPI

Qualidade de Produtos de Software

Níveis A B C DÁreas Chaves

Estratégia de Teste

Elaboração de simples estratégias para testes de alto nível. Por exemplo: para Testes de Sistemas.

Elaboração de estratégias combinadas para testes de alto nível.

Elaboração de estratégias combinadas para testes de alto nível e de baixo nível.

Estratégia para todos os níveis de testes e combinação.

Modelos de Ciclo de Vida

Planejamento, Especificação, Execução.

Planejamento, Preparação, Especificação, Execução, Finalização.

Momento de envolvimento

Na conclusão dos documentos base para os testes.

No inicia da construção dos documentos base para os testes.

Início da especificação dos requisitos

Início do Projeto de desenvolvimento.

Planejamento e Estimativa

Estimativa e planejamento resumidos

Estimativas e planejamentos baseados em dados históricos.

Técnicas de Especificação de

Testes

Técnicas informais

Técnicas formais

Qualidade de Produtos de Software

Modelo para Implantar Melhorias - TPI

Determinar o alvo e a abordagem: Que áreas serão atacadas ?

Primeira avaliação: Conhecimento da situação atual são verificados os pontos fortes e fracos do processo de teste.

Definir ações de melhoria: Baseadas nas metas e no resultado da avaliação.

Formular plano: O plano aborda as atividades necessárias para orientar o processo de mudança .

Implementar ações de melhoria: Execução do plano. São analisadas as ações executadas e bem sucedidas.

Avaliação final: Qual foi o rendimento das ações implementadas?

Qualidade de Produtos de Software

TMM

Qualidade de Produtos de Software

TMM Nível 1 – Initial: não existe processo definido.

O objetivo dos testes é mostrar que o software funciona.

Nível 2 – Phase Definition: planos de teste são estabelecidos contendo estratégias de teste.

Nível 3 – Integration: Testes integrados ao ciclo de vida do software. É feito um Master Test Plan. A estratégia de testes é determinada através de técnicas de gerenciamento de riscos e baseada em requisitos.

Qualidade de Produtos de Software

TMM Nível 4 – Management and

Measurement: Revisões e inspeções são incorporadas ao ciclo de vida do desenvolvimento. Os produtos de software são avaliados a partir de critérios de qualidade , como reusabilidade e usabilidade. Casos de testes são armazenados e gerenciados em uma base de dados central para reuso e testes de regressão

Qualidade de Produtos de Software

TMM Nível 5 – Optimization: Métodos e

técnicas são otimizadas e estão em melhoramento contínuo. A prevenção de defeitos e o controle de qualidade são introduzidos em outras áreas do processo. Há procedimentos para escolha e avaliação de ferramentas de testes.

Qualidade de Produtos de Software

TIM

4 Objetivos gerais com sub-objetivos; Um objetivo só poderá ser atendido se

seus sub-objetivos também forem atendidos

Áreas Chave

Qualidade de Produtos de Software

Objetivos - TIM Nível 1 - Baselining

- Padronização dos documentos, métodos e políticas.

- Análise e classificação dos problemas.

Nível 2 – Cost-efectiveness- Detecção de bugs desde o início do projeto- Automação de tarefas de teste- Treinamento- Reuso

Qualidade de Produtos de Software

Objetivos - TIM Nivel 3 – Risk-lowering

- Envolvimento desde o início do projeto- Análise de custo x benefício para justificar os gastos- Análise de problemas nos produtos e processos- Métricas de produtos, processos e recursos- Análise e gerenciamento de riscos- Comunicação com todas as partes envolvidas nos projetos

Nivel 4 - Optimizing- Conhecimento e entendimento através de experimentação e modelagem- Cooperação com todas as partes envolvidas nos projetos em todas as fases do desenvolvimento- Análise das causas raízes para os principais problemas- Melhoria contínua

Qualidade de Produtos de Software

Áreas Chave - TIMOrganizaçãoPlanejamento e RastreabilidadeCasos de Teste Testware (artefatos de teste)Revisões

Qualidade de Produtos de Software

ConclusãoGarantir a qualidade do produto é

essencialO cliente ficará mais satisfeitoTestes e Inspeções contribuem na

garantia da qualidadeDetectam defeitos e corrigem antes

de chegar nas mãos do cliente

Qualidade de Produtos de Software

Dúvidas