Verificação e Validação
 Sistemas possuem restrições de qualidade e
confiabilidade
 Qualidade de sw: satisfação dos requisitos
funcionais, de desempenho e normas
explicitamente declarados.
 Redução de custos e aumento da qualidade e
confiabilidade nos processo e produto de sw
 Estima-se que 40% a 50% do esforço de
desenvolvimento de sistemas são empregados
em atividades de verificação e validação
Verificação e Validação (V&V)
 Em Engenharia de Software (IEEE 1012):
 Validação:
 estamos construindo o produto certo?
 o software faz o que o usuário requisitou?
 Verificação:
 estamos construindo o produto corretamente?
 o software está de acordo com sua especificação?''
Verificação e Validação
 Validação:
 Confirmar por testes e com provas objetivas
que requisitos particulares para um
determinado uso foram cumpridos.
 Busca provar que o software implementa cada
um dos requisitos corretamente e
completamente ou seja, tenta responder à
pergunta:
 O produto correto foi construído?
Verificação e Validação
 Verificação:
 Confirmar por testes e com provas objetivas
que requisitos especificados foram cumpridos.
 Visa garantir que os produtos de uma dada
fase implementam em sua totalidade as
entradas para aquela fase, ou seja, tenta
responder à pergunta:
 O produto foi construído corretamente?
Verificação
 Existem duas técnicas fundamentais de
verificação de software:
 Dinâmica: implica em execução do código=>
TESTES;
 Estática: análises e inspeções sem execução do
código
Teste de Software
 … é o processo de executar programas
usando casos de teste, com o objetivo de
encontrar defeitos, em um ambiente
controlado.
 Caso de teste = dado de teste +
saída esperada
 É uma atividade essencial para se garantir a
qualidade do software.
 É uma das últimas atividades que fará a
revisão do produto.
7
Teste de Software
 Falhas em sistemas críticos
 Ariane 5 (erro em uma conversão de ponto
flutuante de 64 bits para inteiro de 16 bits)
 Therac 25
 Titan IV e Titan IV b
 Boeing 757 na Colombia
8
Teste de Software
 Pode gastar 40% do esforço de
desenvolvimento
 Objetivos do teste: Revelar erros ainda não
descobertos
9
Teste de Software
 Características de um bom teste
 Tem alta probabilidade de encontrar um erro
 Não é redundante
 Não deve ser muito simples nem muito complexo
10
Estratégias de Teste
11
Estratégias de Teste
 Terão sucesso quando os testadores de sw:
 Quantificarem requisitos do produto antes do
teste.
 Definirem explicitamente os objetivos do teste.
 Desenvolverem um perfil para cada categoria de
usuário.
 Desenvolverem um plano de teste: teste de ciclo
rápido (2% do trabalho de projeto) de incrementos de
funcionalidade e/ou qualidade passíveis de
experimentação.
12
Estratégias de Teste
 ...
 Criarem sw robusto, projetado para testar a si próprio:
 diagnosticar e manipular certas classes de erros:
abordagem antidefeitos
 acomodar teste automático e teste de regressão.
 Usarem revisões técnicas eficazes antes do teste:
descobrir erros, avaliar estratégias e casos de teste.
 Desenvolverem abordagem de melhoria contínua:
métricas coletadas no teste usadas no controle estatístico
13
Estratégias de Teste
 Teste de unidade
 realizado na menor unidade de projeto de
software: o componente ou módulo
 é um auxiliar para a codificação.
 exame do projeto: auxilia a estabelecer casos
de testes
 tem como objetivo testar:
 a lógica interna de processamento
 as estruturas de dados no escopo do componente
14
Teste de Unidade
 São testados:
 interfaces,
 estruturas lógicas de dados,
 condições limites,
 caminhos independentes e
 caminhos de manipulação de erros.
 + fluxo de controle, fluxo de dados
15
Teste de Unidade
 Teste de fronteira
 Falhas no n-ésimo elemento de um conjunto de
tamanho n, na i-ésima repetição de um laço com i
repetições, no valor máximo ou mínimo permitido:
 Valor logo abaixo de n, i, max e min
 Valor igual a n, i, max e min
 Valor logo acima de n, i, max e min
16
Teste de Unidade
 Para realizar o teste de unidade é necessária a
implementação de:
 pseudocontrolador (driver): simula o módulo do
sistema que chama o módulo a ser testado
 pseudocontrolado (stub): simula o módulo do
sistema que é chamado pelo módulo a ser testado
 SIMPLICIDADE
17
Estratégias de Teste
 Uma prática eficiente, vinda do
desenvolvimento ágil é projetar o teste antes
de iniciar a implementação do módulo.

586555302-Testes2-Verificacao-e-Validacao.pdf

  • 1.
    Verificação e Validação Sistemas possuem restrições de qualidade e confiabilidade  Qualidade de sw: satisfação dos requisitos funcionais, de desempenho e normas explicitamente declarados.  Redução de custos e aumento da qualidade e confiabilidade nos processo e produto de sw  Estima-se que 40% a 50% do esforço de desenvolvimento de sistemas são empregados em atividades de verificação e validação
  • 2.
    Verificação e Validação(V&V)  Em Engenharia de Software (IEEE 1012):  Validação:  estamos construindo o produto certo?  o software faz o que o usuário requisitou?  Verificação:  estamos construindo o produto corretamente?  o software está de acordo com sua especificação?''
  • 3.
    Verificação e Validação Validação:  Confirmar por testes e com provas objetivas que requisitos particulares para um determinado uso foram cumpridos.  Busca provar que o software implementa cada um dos requisitos corretamente e completamente ou seja, tenta responder à pergunta:  O produto correto foi construído?
  • 4.
    Verificação e Validação Verificação:  Confirmar por testes e com provas objetivas que requisitos especificados foram cumpridos.  Visa garantir que os produtos de uma dada fase implementam em sua totalidade as entradas para aquela fase, ou seja, tenta responder à pergunta:  O produto foi construído corretamente?
  • 5.
    Verificação  Existem duastécnicas fundamentais de verificação de software:  Dinâmica: implica em execução do código=> TESTES;  Estática: análises e inspeções sem execução do código
  • 6.
    Teste de Software … é o processo de executar programas usando casos de teste, com o objetivo de encontrar defeitos, em um ambiente controlado.  Caso de teste = dado de teste + saída esperada  É uma atividade essencial para se garantir a qualidade do software.  É uma das últimas atividades que fará a revisão do produto.
  • 7.
    7 Teste de Software Falhas em sistemas críticos  Ariane 5 (erro em uma conversão de ponto flutuante de 64 bits para inteiro de 16 bits)  Therac 25  Titan IV e Titan IV b  Boeing 757 na Colombia
  • 8.
    8 Teste de Software Pode gastar 40% do esforço de desenvolvimento  Objetivos do teste: Revelar erros ainda não descobertos
  • 9.
    9 Teste de Software Características de um bom teste  Tem alta probabilidade de encontrar um erro  Não é redundante  Não deve ser muito simples nem muito complexo
  • 10.
  • 11.
    11 Estratégias de Teste Terão sucesso quando os testadores de sw:  Quantificarem requisitos do produto antes do teste.  Definirem explicitamente os objetivos do teste.  Desenvolverem um perfil para cada categoria de usuário.  Desenvolverem um plano de teste: teste de ciclo rápido (2% do trabalho de projeto) de incrementos de funcionalidade e/ou qualidade passíveis de experimentação.
  • 12.
    12 Estratégias de Teste ...  Criarem sw robusto, projetado para testar a si próprio:  diagnosticar e manipular certas classes de erros: abordagem antidefeitos  acomodar teste automático e teste de regressão.  Usarem revisões técnicas eficazes antes do teste: descobrir erros, avaliar estratégias e casos de teste.  Desenvolverem abordagem de melhoria contínua: métricas coletadas no teste usadas no controle estatístico
  • 13.
    13 Estratégias de Teste Teste de unidade  realizado na menor unidade de projeto de software: o componente ou módulo  é um auxiliar para a codificação.  exame do projeto: auxilia a estabelecer casos de testes  tem como objetivo testar:  a lógica interna de processamento  as estruturas de dados no escopo do componente
  • 14.
    14 Teste de Unidade São testados:  interfaces,  estruturas lógicas de dados,  condições limites,  caminhos independentes e  caminhos de manipulação de erros.  + fluxo de controle, fluxo de dados
  • 15.
    15 Teste de Unidade Teste de fronteira  Falhas no n-ésimo elemento de um conjunto de tamanho n, na i-ésima repetição de um laço com i repetições, no valor máximo ou mínimo permitido:  Valor logo abaixo de n, i, max e min  Valor igual a n, i, max e min  Valor logo acima de n, i, max e min
  • 16.
    16 Teste de Unidade Para realizar o teste de unidade é necessária a implementação de:  pseudocontrolador (driver): simula o módulo do sistema que chama o módulo a ser testado  pseudocontrolado (stub): simula o módulo do sistema que é chamado pelo módulo a ser testado  SIMPLICIDADE
  • 17.
    17 Estratégias de Teste Uma prática eficiente, vinda do desenvolvimento ágil é projetar o teste antes de iniciar a implementação do módulo.