qualidade qualidade é um dos principais objetivos da engenharia de software. muitos métodos,...
TRANSCRIPT
QualidadeQualidade é um dos principais objetivos da Engenharia de Software.
Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção com qualidade.
“Tem-se dado grande importância ao processo como forma de se garantir um software de melhor qualidade.”
QualidadeQualidade
QUALIDADE enfatiza três importantes conceitos:
1) Requisitos de Software formam a base a partir da qual a qualidade é avaliada.
Falta de concordância com os requisitos é falta de qualidade.
2) Padrões especificados definem um conjunto de Critérios de Desenvolvimento que orientam a maneira como o software é construído. Se o critério não for seguido, certamente haverá falta de qualidade.
3) Requisitos Implícitos que freqüentemente não são mencionados. (ex: desejo de boa manutenibilidade). Se o software atende aos requisitos explícitos, mas falha nos requisitos implícitos, a qualidade é suspeita.
QualidadeQualidade
Qualidade?Qualidade?
A priori Qualidade é um conceito muito subjetivo, pois dependendo da percepção de cada!
Pode se distinguir dois pontos de
vista importantes:
– Ponto de vista do cliente;– Ponto de vista do fornecedor.
Ponto de Vista do Ponto de Vista do ClienteCliente A qualidade de um produto está ligada ao:
– seu desempenho;
– comprimento fiel das especificações;
– relação custo/benefício;
– seu padrão de excelência em relaçãoa um padrão mínimo exigido;
– condição de atendimento durante
o processo de aquisição;
– tradição no mercado;
– adequação ao uso de cada um;– segurança de uso que ele traz;
Ponto de Vista do Ponto de Vista do FornecedorFornecedor
– Capacidade de levar a satisfação ao
cliente;
– relação custo/benefício;
– adequação ao mercado, à concorrência,
e aos clientes.
Níveis Estruturais de um Níveis Estruturais de um Sistema de QualidadeSistema de Qualidade
Nível EstratégicoAlta gerência
Nível TáticoMédia Gerência
Em todos os níveis
Nível operacional
Supervisores, Técnicos e Operadores
PQ
MQ
PO
IT - EP - D
RQ
O que?
Como?
Visões sobre a importância da qualidade Visões sobre a importância da qualidade do produto e do processodo produto e do processo
Visão que aborda a qualidade do produtoqualidade do produto– Funcionalidade, confiabilidade, utilizabilidade,
eficiência, manutenibilidade e portabilidade.
Visão que aborda a qualidade do processoqualidade do processo– Dos requisitos do usuário à entrega do produto
final, existe um processo de desenvolvimento complexo e dividido em fases, que pode comprometer a qualidade do software.
Modelo de Processo de Modelo de Processo de SoftwareSoftware
Modelo de Processo é representado por um conjunto seqüencial de atividades, objetivos, transformações e eventos que encapsulam estratégias para o cumprimento da evolução do software.
A efetividade de um modelo depende da adequação deste com as metas do projeto, ex. confiabilidade, produtividade e recursos disponíveis.
Um modelo de processo deve ser flexível.
Gerência de Processo de Gerência de Processo de SoftwareSoftware
A gerência de processo objetiva a geração de produtos de acordo com o planejado e, ao mesmo tempo, melhorar a capacidade de produzir software com mais qualidade.
Melhor capacidade de lidar com o software:Passo 1. Compreender o estado atual do processo;Passo 2. Desenvolver uma visão do processo desejado;Passo 3. Estabelecer ações para a melhoria do processo;Passo 4. Gerar um plano para acompanhar estas ações;Passo 5. Compreender os recursos para execução do plano;Passo 6. Recomeçar a partir do Passo 1.
Para a evolução do processo de software é necessário ter uma maneira para medí-lo.
Fatores da Qualidade de Software ( McCall)Fatores da Qualidade de Software ( McCall)
Manutenibilidade: Posso consertá-lo? Flexibilidade: Posso mudá-lo Testabilidade:
Posso testá-lo? Portabilidade:
Poderei usá-lo em outra máquina? Reusabilidade: Poderei reutilizá-lo em outra máquina? Interoperabilidade: Poderei compor uma interface
com outro sistema?
Corretitude: Ele faz aquilo que eu quero?
Confiabilidade: Ele se comporta com precisão o tempo todo?
Eficiência: Ele rodará no meu hardware tão bem quanto possível?
Integridade: Ele é seguro?
Usabilidade: Ele foi projetado para o usuário?
Fatores da Qualidade de Software ( McCall)Fatores da Qualidade de Software ( McCall)
1. A atividade de teste é o processo de executar um programa com a intenção de descobrir um erro;
2. Um bom caso de teste é aquele que tem uma elevada probabilidade de revelar um erro ainda não descoberto;
3. Um teste bem-sucedido é aquele que revela um erro ainda não descoberto.
Técnicas de Teste de Software
Projetar testes que descubram sistematicamente diferentes classes de erros e façam-no com uma quantidade de tempo e esforço mínimos. Se a atividade de teste for conduzida com sucesso, ela descobrirá erros no software. A atividade de teste não pode mostrar a ausência de bugs;ela só pode mostrar se defeitos de software estão presentes. Se erros graves forem encontrados com regularidade a qualidade e a confiabilidade de software são suspeitas. Se erros facilmente corrigíveis forem encontrados a qualidade e a confiabilidade do software estão aceitáveisou os testes são inadequados para revelar erros graves. Se não for encontrado erro a configuração de teste não foi suficientemente elaborada e erros estão escondidos no software.
Objetivos da Atividade de Teste
Abordagens de Teste
• Teste de Caixa Preta •Teste de Caixa Branca •Teste de Caminho Básico
• Caminho Independente • Complexidade Ciclomática
•Teste de Estrutura de Controle
• Teste de Condição• Teste de Fluxo de Dados• Teste de Laços
Teste de Caixa Preta
Concentram-se nos requisitos funcionais do software.O teste de caixa preta procura descobrir erros nas seguintes categorias:
1) funções incorretas ou ausentes2) erros de interface3) erros nas estruturas de dados ou no acesso a bancos de dados externos4) erros de desempenho5) erros de inicialização e término
Teste de Caixa Branca
É um método de projeto de casos de teste que usa a estrutura de controle do projeto procedimental para derivar casos de teste. casos de teste. Podem ser derivados casos de teste que: Podem ser derivados casos de teste que:
(1) garantam que todos os caminhos independentes dentro de um módulo tenham sido exercitados pelo menos uma vez.(2) exercitem todas as decisões lógicas para valores falsos ou verdadeiros.(3) executem todos os laços em suas fronteiras e dentro de seus limites operacionais.(4) exercitem as estruturas de dados internas para garantir a sua validade.
Teste de Caminho Básico
O método de caminho básico possibilita que o projetista do caso de teste derive uma medida de complexidade lógicade um projeto procedimental e use essa medida como guiapara definir um conjunto básico de caminhos de execução.
Verificação e Validação
Verificação: refere-se ao conjunto de atividades que garante que o software implementa corretamente um função específica.
“Estamos construindo certo o produto?” Validação: refere-se ao conjunto de atividades que garante que o software que foi construído é “rastreável” às exigências do cliente.
“Estamos construindo o produto certo?”
Organização para Realização de Teste
Quando o teste se inicia há um conflito de interesses:
Desenvolvedores: interesse em demonstrar que o programa é isento de erros.
Responsáveis pelos testes: interesse em mostrar que o programa tem erros. Do ponto de vista psicológico:
Análise, Projeto e Codificação de Software são tarefas construtivas
Teste é tarefa destrutiva
Teste de Unidade: concentra-se em cada unidade do software, de acordo com o que
é implementado no código fonte.
Teste de Integração: concentra-se no projeto e na construção da arquitetura de
software.
Teste de Validação: os requisitos estabelecidos como parte da análise de
requisitos de software são validados em relação ao software que foi construído.
Teste de Sistema: o software e outros elementos do sistema são testados como um todo.
Uma Estratégia de Teste de Software
Manutenção de Software 1. Alterações efetuadas no software depois de sua liberação.
2. As alterações ocorrem por diversas razões.
3. As razões para as alterações determinam a categoria demanutenção.
4. Fase mais problemática do Ciclo de Vida de Software
5. Pode despender mais de 70% de todo esforço de uma Organização6. Esses sistemas devem continuar rodando e as alterações
são inevitáveis
7. Por que é exigida tanta Manutenção e por que é despendido tanto Esforço nessa atividade?
• Idade Média de 10 a 15 anos• Quando foram implementados , o tamanho do programa e espaço de armazenamento eram o principal interesse• Migração Para Novas Plataformas• Sistemas mau estruturados• Melhoramentos Para Atender Novas Necessidades• Nenhuma preocupação com a Arquitetura Global• Codificação, Lógica e Documentação ruins
Manutenção de Software
Categorias de Manutenção 1. Identificar e Corrigir Erros Manutenção Corretiva
2. Adaptar o Software ao Ambiente Manutenção Adaptativa
3. Atender Pedidos do Usuário para : Modificar Funções Existentes, Incluir Novas Funções e Efetuar Melhoramentos Gerais
Manutenção Perfectiva
4. Melhorar a manutenibilidade ou confiabilidade futuras e fornecer uma base melhor para futuros melhoramentos
Manutenção Preventiva
Tarefas da Manutenção 1. Estabelecer uma organização para a manutenção;
2. Descrever o procedimento de avaliação e comunicação;
3. Definir sequencias padronizadas de eventos ( para os pedidos de manutenção);
4. Estabelecer procedimento para registrar a história das atividades de manutenção;
5. Definir critérios de revisão e avaliação.