Upload
benedita-canario-domingues
View
212
Download
0
Embed Size (px)
Citation preview
Verificação & Validação
O que é V&V? É um conjunto de processos de verificação e
análise.
Qual é Objetivo?
Qualidade
RevisõesTécnicasFormais
Métodos de EngenhariaDe Software
PadrõesE
Procedimentos
SCMe
SQA
AtividadeDe
Teste
Medição
Diferença entre Verificação e Validação Validação: “Estamos construindo o produto
correto?”
Cliente Desenvolvedor
Não atende a expectativa do Cliente
Diferença entre Verificação e Validação Verificação: “Estamos construindo o produto
corretamente?”
Não atende os requisitos funcionais
e não-funcionais
ClienteDesenvolvedor
Quando é Realizado?
Linha do Tempo
Atividadede
Desenvolvimento
V&V- Revisões dos Requisitos
V&V-Revisão do Projeto;-Inspeção do Código;
V&V-Teste do Produto
Principal Problema
Nem sempre as especificações de sistema de software refletem os verdadeiros desejos ou necessidades dos usuários ou dos proprietários de sistemas.
Verificação & Validação
O sistema de software está “adequado” ao seu propósito? O sistema deve ser bom o suficiente para o uso
pretendido.
O Nível de confiabilidade depende de: Propósito do sistema; Expectativa dos usuários; Expectativa do atual ambiente de mercado.
Dependencia do Nível de Confiabilidade Propósito do Sistema (Função do Software)
Qual é o nível crítico do sistema? Expectativa do Usuário
Não frustrar a expectativa do Usuário O usuário está se tornando cada vez mais
intolerante à falhas do sistema. Expectativa do Ambiente de Mercado
Quem são os concorrentes? Meu produto é inovador?
Abordagens do V&V
Inspeção de Software (Revisões em Pares) Analisar e verificar as representações do sistema
(requisitos, diagramas de projeto e código-fonte do programa);
Pode ser usado em todo os estágios do projeto; Técnica estática;
Teste de Software Executar as implementações do software com dados de
teste; Verifica-se a saída e seu desempenho; Técnica dinâmica.
Abordagens do V&V
As duas abordagens são complementares no processo do software.
Inspeçõesde Software
Especificaçõesde Requisitos
Projeto dealto nível
EspecificaçõesFormal
Projetodetalhado
Programa
Protótipo Teste dePrograma
Abordagens do V&V
A técnica de teste é a principal técnica a ser utilizada no processo de V&V de um Software.
O que é Teste de Software? Exercitar o programa usando dados como dados
reais processados pelo programa.
Abordagens do V&V
Tipos de Testes: Teste de Validação
Verifica se o Software atende os requisitos; Teste de Defeitos
Visa revelar defeitos no sistema e/ou inconsistências entre um programa e sua especificação.
Abordagens do V&V
O processo de teste na V&V e Depuração normalmente são intercalados.
Objetivo do Teste na V&V Estabelecer a existência de defeitos em um
sistema de software; Objetivo da Depuração
Localizar e corrigir esses defeitos.
Abordagens do V&V
O processo de depuração depende da experiência do programador Projetar testes; Rastrear o programa manualmente; Utilizar ferramentas apropriadas
ProjetarReparo de erros
Repararerros
Testar programanovamente
Casos detestes
Resultadosdos erros Especificação
Localizarerros
- Teste de regressão- Rastreabilidades
dos casos de teste
Planejamento de V&V
É um processo dispendioso; Quando mais crítico maior o esforço deve ser
dedicado as técnicas de Verificação estática. Objetivos do Plano de Teste:
Estabelecer um cronograma e os procedimentos de teste;
Define os recursos de hardware e software necessários
Os planos de teste não são documentos estáticos.
Planejamento de V&V
Modelo V
Especificação de requisitos
Projetodetalhado
Código unitárioE de módulo,
e teste
Teste de integraçãode subsistemas
Teste de integraçãode sistemas
Teste deaceitação
Serviço
Plano de testede aceitação
Plano de testede integração
do sistema
Plano de testede integração
de subsistemas
Especificaçãode sistema
Projetode sistema
Inspeções de Software
Faz parte do processo estático do V&V; Pesquisas demonstram que Inspeção de
Soft. é mais eficientes que testes de programas;
A Inspeção e Teste devem ser feito em conjunto.
Objetivos: Encontrar erros, omissões e anomalias no
sistema.
Inspeções de Software
Enfoca em qualquer representação legível do software Código-fonte; Requisitos; Modelo de projeto.
Inspeções de Software
Necessidades para uma Inspeção com qualidade: Conhecimento do sistema; Domínio de aplicação; Linguagem de programação; Modelo de projeto.
Vantagens da Inspeção em Relação ao Teste Sem influência de mascaramento de erros
por outros erros; Possibilidade de inspecionar versões
incompletas sem custo adicional; Possibilidade de verificar atributos de
qualidades mais amplos: Conformidade com padrões; Portabilidade; Facilidade de manutenção; Uso de algoritmo ineficiente ou inapropriado.
Equipe de Inspeção
Analisam sistematicamente a representação do sistema a procura por erros;
Requisitos para realizar a Inspeção de Software: Especificação precisa do código-fonte; A equipe de inspeção devem estar familiarizados
cm os padrões organizacionais; Disponibilidade de uma versão executável do
sistema.
Equipe de Inspeção Papéis no processo de inspeção:
1. Autor e proprietário: responsável pelo programa ou documento;
2. Inspetor: responsável por inspecionar o programa ou documento;
3. Leitor: apresenta o código ou documento na reuninão de inspeção;
4. Relator: registra os resultados da reunião de inspeção;5. Presidente ou moderador: gerencia e facilita a
inspeção. Relata os resultados do processo ao moderador-chefe;
6. Moderador-chefe: responsável pelos aprimoramento do processo de inspeção, pela atualização da lista de verificação, pelo desenvolvimento de padrões, etc..
Processo de Inspeção
Planejamento
Visão Geral
PreparaçãoIndividual
Reunião deInspeção
Retrabalho
Acompanhamento
Verificações de Inspeção
Defeitos de dados Todas as variáveis de programa são iniciadas
antes que seus valores sejam usados? TOdas as constantes foram denominadas? O limite superior de vetores deve ser igual ao
tamanho do vetor ou Tamanho -1? Se são usados strings de caracteres, um
delimitador é explicitamente atribuído? Existe alguma possibilidade de overflow de
buffer?
Verificações de Inspeção
Defeitos de controle Para cada declaração condicional, a condição
está correta? Cada loop está terminando corretamente? As declarações compostas estão corretamente
delimitadas entre parênteses? Em declarações de ‘case’, todos os casos
possíveis são levados em conta? Se um comando ‘break’ é necessário após cada
caso nas declarações ‘case’, ele foi incluído?
Verificações de Inspeção
Defeitos de E/S Todas as variáveis de entrada são usadas? Todas as variáveis de saída tem valor atribuído
antes de sua saída? Entradas inesperadas podem fazer com que os
dados sejam corrompidos?
Verificações de Inspeção
Defeitos de interface Todas as chamadas de funções e de métodos
têm o número correto de parâmetros? Tipos de parâmetros reais e formais se
combinam? Os parâmetros estão na ordem correta? Se os componentes acessam memória
compartilhada, elas têm o mesmo modelo de estrutura de memória compartilhada?
Verificações de Inspeção
Defeitos de gerenciamento de armazenamento Se uma estrutura ligada é modificada, todas as
ligações foram corretamente reatribuídas? Se o armazenamento dinâmico foi usado, o
espaço foi corretamente alocado? O espaço de memória é liberado depois de não
ser mais necessário?
Verificações de Inspeção
Defeitos de gerenciamento de exceções Todas as condições possíveis de erro foram
consideradas?