Upload
anderson-ramalho-botelho
View
215
Download
2
Embed Size (px)
Citation preview
QUALIDADE DE PRODUTOS DE SOFTWAREMarília Oliveira
Roteiro Introdução Modelos de Qualidade Testes de Software Inspeções Modelos de Maturidade para Testes
Introdução A indústria busca a cada dia oferecer
produtos de maior qualidade, a fim de fidelizar clientes, vencer a concorrência, ganhar mercado e por conseqüência, conseguir melhores resultados financeiros.
Qualidade é objetivo de negócio.
Introdução O que é um software de qualidade?
Qualidade verificável – requisitos verificáveis
Requisitos funcionais e não funcionais idealmente devem descrever características qualitativas e quantitativas que devem ser respeitadas
Medir a qualidade de um software é avaliá-lo em relação a essas características.
Modelos de Qualidade ISO 9126
ISO/IEC 9126-1 ISO 12119 ISO 14598 Projeto SQuaRE
ISO/IEC 9126-1 Modelo de referência para atributos de qualidade Características e subcaracterísticas de qualidade
Funcionalidade Adequação Acurácia Conformidade Segurança de acesso
Confiabilidade Maturidade Tolerância a falhas Recuperabilidade
Usabilidade Intelegibilidade Apreensibilidade
ISO/IEC 9126-1 Características e subcaracterísticas de
qualidade Eficiência
Tempo Recursos
Manutenibilidade Analisabilidade Modificabilidade Estabilidade Testabilidade
Portabilidade Adaptabilidade Facilidade para ser instalado
IS0 12119 Avaliação de pacotes de software Requisitos de qualidade
Descrição do Produto Documentação do usuário Programas e dados
Instruções para testes Pré-requisitos de teste Atividades de teste Registro de teste Relatório de teste
ISO 14598 Guia para avaliação de produtos de
software baseado na ISO 9126 Define um processo geral de avaliação e
um conjunto de guias relacionados ao objetivo da avaliação Guia para Desenvolvedores Guia para Aquisição Guia para Avaliação
Projeto SQuaRE Organização em conjunto das normas
9126 e 14598 - norma ISO/IEC 25000
Requisitos de
Qualidade
2503n
Modelo de Qualidade
2501nGerenciamento
de Qualidade 2501n
Medições2501n
Avaliação
2504n
Testes de Software O que é um produto de qualidade?
Normas / atributos de qualidade
Como avaliar se os atributos de qualidade estão presentes no software? Teste de software Inspeção
Testes de Software Atividade de executar um objeto de testes
com o intuito de encontrar falhas, onde falha é qualquer tipo de comportamento não desejado no sistema
Atividade de executar um sistema para demonstrar que ele faz o que era suposto fazer
Avaliar um objeto de software em relação a sua especificação
Abordagens de testes Caixa Preta – motivação de testar uma
combinação de entradas e verificar as respectivas saídas.
Caixa Branca – motivação de testar “caminhos”, estruturas de controle no código- fonte e verificar as saídas.
Estágios de Teste - I Testes de unidade – objeto de testes é
um componente – classe, normalmente caixa-branca
Testes de integração – objeto de testes é a interface entre dois componentes já previamente testados – caixa-branca ou caixa-preta
Estágios de Testes - II Testes de sistema – objeto de testes é
o sistema, já instalado em um ambiente similar ao de produção – caixa-preta.
Testes de aceitação – objeto de testes é o sistema, mas o objetivo é obter o “aceite” do usuário final. Teste alfa ou beta.
Tipos de Testes Relacionados a quais requisitos ou
características específicas do sistema que serão verificadas. Teste funcional Teste de recuperação a falhas Teste de interoperabilidade Teste de segurança Teste de carga Teste de performance Teste de stresse Teste de configuração Teste de usabilidade
Testes de Regressão Atividade de re-executar um conjunto
de testes em um objeto de teste (componente, interface, sistema) de modo a observar se novos defeitos foram introduzidos após um incremento de funcionalidade ou uma manutenção corretiva.
Processo de TestesPlanejamento e
Controle
Análise e Projeto
Implementação e Execução
Avaliação dos critérios de
saída
Encerramento
Inspeção de Software - I Testes Estáticos – ao contrário dos testes
dinâmicos, que avaliam o comportamento do sistema em execução, os testes estáticos avaliam a estrutura dos artefatos produzidos (especificações, modelos e código-fonte) e verifica aspectos como adequação a padrões, completude, corretude e consistência
Detectam de 60% (Fagan, 1986) a 90% (Mills,1987) dos defeitos de um sistema, detecção e correção mais barata
Suporte de ferramentas
Testes e o ciclo de vida do software
Requisitos do usuário
Requisitos do sistema
Projeto do sistema
Projeto dos component
esImplementa
ção
Testes de unidade
Teste de Integração
Testes de sistema
Testes de Aceitação
Modelos de Maturidade para Testes Modelos de referência para o processo de
desenvolvimento são pouco superficiais em relação às atividades de testes
Modelos de maturidade para testes – modelos de referência para a definição de processos de testes mais eficientes.
Investir em processo falho é desperdiçar mais recursos para obter os mesmos resultados.
Test Process Improvement - TPI 20 áreas chaves dividas em:
ciclo de vida do desenvolvimento do software; técnicas de planejamento e testes; infra-estrutura do ambiente de testes; fatores organizacionais.
Matriz de
Maturidade
De Teste
Áreas Chave
Níveis
Pontos de Verificação Sugestões de Melhoria
Test Maturity Model - TMM Baseado no CMM
e aderente ao CMMI
5 níveis de maturidade, áreas de processo definidas para cada nível Inicial
Definição
Integração
Gerenciamento e Medição
Otimização
Test Improvement Model - TIM Desenvolvido pela Ericson, Subotic, Ursing 5 níveis de maturidade:
Nível 0 Nível 1 – Baseline Nível 2 – Cost-efectiveness Nível 3 – Risk-lowering Nível 4 – Optimizing
Aspectos: Organização Planejamento e rastreabilidade Casos de testes Testware Revisões
Considerações finais Se o assunto é qualidade de software não há como
desvinculá-la a realização de testes
Mas não basta ter profissionais de testes na equipe ou atividades de testes no processo
Teste é uma atividade bastante custosa, sendo assim é preciso otimizar a utilização dos recursos disponíveis e executar “os melhores testes possíveis”
É preciso definir o que fazer, como fazer e quando fazer, de preferência em conformidade com normas e padrões internacionais e modelos de referencia para processos de testes