270 likes | 604 Views
Qualidade de P rodutos de Software. Marília Oliveira. Roteiro. Introdução Modelos de Qualidade Testes de Software Inspeções Modelos de Maturidade para Testes. Introdução.
E N D
Qualidade de Produtos de Software Marí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 2501n Avaliação 2504n Gerenciamento de Qualidade 2501n Medições2501n
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 comportamentonã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 Testes Planejamento 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 Testes de Aceitação Requisitos do sistema Testes de sistema Projeto do sistema Teste de Integração Projeto dos componentes Testes de unidade Implementaçã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.
Matriz de Maturidade De Teste Áreas Chave Níveis Pontos de Verificação Sugestões de Melhoria 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.
Test Maturity Model - TMM • Baseado no CMM e aderente ao CMMI • 5 níveis de maturidade, áreas de processo definidas para cada nível Otimização Gerenciamento e Medição Integração Definição Inicial
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