Buscar

07 AVALIAÇÃO DE SOFTWARE Aula 07

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

AVALIAÇÃO DE SOFTWARE
Aula 7- Teste de validação e suas fases
Teste de validação e suas fases - Aula 7
Avaliação de Software
Teste de validação e suas fases - Aula 7
Avaliação de Software
Conteúdo Programático desta aula
A relação dos dois níveis de testes com as fases da validação.
Os tipos de testes de cada fase da validação e suas características.
Teste de validação e suas fases - Aula 7
Avaliação de Software
Teste de validação e suas fases - Aula 7
Avaliação de Software
Teste de Validação
Iniciam–se no final do teste de integração
Os components individuais foram executados;
O software está completo;
Os erros de interface corrigidos.
Teste de validação e suas fases - Aula 7
Avaliação de Software
Teste de Validação
A validação do software se torna bem-sucedida quando o software:
funciona de maneira adequadamente esperada pelo cliente,
 desta forma, é obtida por intermédio de uma série de testes que demonstram conformidade com os requisitos. 
Teste de validação e suas fases - Aula 7
Avaliação de Software
Teste de Validação
Todos os requisitos funcionais sejam satisfeitos
Todos os requisitos de desempenho sejam conseguidos
A documentação esteja correta 
Outros requisitos sejam cumpridos: portabilidade, compatibilidade, remoção de erros e manutenibilidade. 
Teste de validação e suas fases - Aula 7
Avaliação de Software
Fases dos testes de Validação
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de baixo nível
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de baixo nível
Teste de Unidade
É realizado no estágio mais baixo da escala de teste, isto é, no código do programa;
Normalmente é realizado pelo desenvolvedor;
Concentra-se em cada unidade do software, de acordo com o que é implementado no código fonte. 
Utiliza as técnicas de teste de caixa branca e caixa preta. 
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de baixo nível
Teste de Unidade
Interface de módulo  
Estrutura de dados local  
Caminhos independentes da estrutura de controle  
Condições limite
Caminhos de manipulação de erro  
Casos de testes deverão ser projetados para descobrir erros devido a computações errôneas, comparações incorretas ou fluxo de controle inadequado.  
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de baixo nível
Teste de Unidade
Mas como fazer o teste de unidade se os componentes não são programas independentes? 
Através da construção de pseudo-controladores;
Agem como o programa principal
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de baixo nível
Testes de Integração
Focaliza o pacote de software completo
Verifica o programa como um todo
Utiliza técnicas de projeto de casos de teste que enfocam as entradas e saídas, além de exercitar caminhos específicos.
 
 Mesmo que todos os módulos estejam funcionando individualmente, não se pode garantir que eles funcionarão em conjunto 
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de baixo nível
Testes de Integração
Não incremental (big-Bang) 
Incremental 
Integração descendente ou Top-down
Integração ascendente ou Botton-up
Teste de regressão
Teste fumaça
 
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de baixo nível
Testes de Integração
Não incremental (big-Bang) 
Neste tipo de abordagem todos os componentes são combinados com antecedência e o programa inteiro é testado de uma vez. 
 
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de baixo nível
Testes de Integração
Incremental 
Integração descendente ou Top-down
Os módulos são integrados movendo-se de cima para baixo na hierarquia de controle.
Começa-se pelo módulo de controle principal e os módulos subordinados são incorporados à estrutura. 
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de baixo nível
Testes de Integração
Incremental 
Integração descendente ou Top-down
Primeiro-em-profundidade (depth-first): Integra todos os componentes em um caminho de controle principal da estrutura do controle. A seleção do caminho é arbitrária. 
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de baixo nível
Testes de Integração
Incremental 
Integração descendente ou Top-down
Primeiro-em-largura (breadth-first): Incorpora todos os componentes diretamente subordinados em cada nível, movendo-se através da estrutura horizontalmente. 
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de baixo nível
Testes de Integração
Incremental 
Integração ascendente ou Botton-up
A integração do sistema começa a partir do nível mais baixo do software, ou seja, o módulo. 
O módulo é dito como o mais baixo nível se ele não depende de outro módulo. 
 Neste tipo de teste assume-se que previamente todos os módulos foram individualmente testados. 
Os módulos são integrados movendo-se de baixo para cima na hierarquia de controle.  
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de baixo nível
Testes de Integração
Incremental 
Teste de regressão
Os testes de regressão geralmente são executados após a correção de algum defeito ou após a adição de uma nova funcionalidade.
 Seu objetivo é garantir que nenhum defeito foi acrescentado ao sistema após sua modificação. 
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de baixo nível
Testes de Integração
Incremental 
Teste de regressão
Toda vez que um novo módulo é adicionado como parte do teste de integração, o software se modifica e assim novos caminhos de fluxos de dados são estabelecidos, nova E/S pode ocorrer ou ainda nova lógica de controle pode ser adicionadas.
 Essas modificações podem causar problemas em funções que previamente funcionavam corretamente.
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de baixo nível
Testes de Integração
Incremental 
Teste de regressão
Os casos de testes de regressão podem ser de três tipos:
Casos de teste que abrangem todas as funcionalidades do sistema.
Casos de teste apenas para as funcionalidades que foram modificadas.
Novos casos de teste para as funcionalidades que provavelmente foram afetadas pela mudança.
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de baixo nível
Testes de Integração
Incremental 
Teste fumaça
Neste tipo de teste o software é reconstruído e testado diariamente para dar aos gerentes e desenvolvedores uma avaliação realística do progresso. 
Teste de validação e suas fases - Aula 7
Avaliação de Software
Fases dos testes de Validação
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de alto nível
Testes de Sistema
Comportamento de todo o sistema / produto definido pelo escopo de um projeto ou programa de desenvolvimento.
Ambiente de teste deve corresponder o máximo possível ao objetivo final, ou o ambiente de produção
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de alto nível
Testes de Sistema
Realizado por uma equipe de teste independente, 
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de alto nível
Testes de Sistema
Série de diferentes testes cuja finalidade é exercitar totalmente o sistema:
 
Teste de recuperação
Teste de segurança
Teste de esforço (estresse)
Teste de desempenho
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de alto nível
Testes de Aceitação
É impossível que se preveja como o cliente realmente usará um programa; 
Instruções de uso mal interpretadas;
combinações estranhas de dados podem ser usadas;
Saídas que pareciam claras ao analista podem ser ininteligíveis para um usuário em campo. 
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de alto nível
Testes de Aceitação
Dependendo da abrangência dos usuários podem ser aplicados de duas maneiras:
 
Software customizado para um cliente 
	 
Software desenvolvido como produto para muitos clientes 
Teste de validação e suas fases - Aula 7
Avaliação de Software
Testes de alto nível
Testes de Aceitação
Teste Alfa 
É conduzido na instalação do desenvolvedor por um grupo representativo de usuários finais.  
Teste Beta 
O teste Beta é conduzido nas instalações de um ou mais usuários finais e neste tipo de teste o desenvolvedor não deverá estar presente. 
Teste de validação e suas fases - Aula 7
Avaliação de Software
Explorando o tema
Não esqueça de consultar o material didático e a biblioteca virtual da Estácio!
Teste de validação e suas fases - Aula 7
Avaliação de Software
Obrigada
 e até
 a próxima aula!
*
Após compreender o conceito, a importância e a aplicação do teste de validação estudados na aula 4. Na aula de hoje iremos identificar os níveis de testes de validação e relacioná-los a cada fase da validação. Como já estudado anteriormente, devemos levar em consideração que, neste momento do desenvolvimento do software já existe um produto computacional que pode ser executado e que passa a ser o objeto de interesse dos testes. 
 
Lembrando que os testes de validação têm por objetivo identificar o maior número possível de erros e por isso seu sucesso está apoiado diretamente no forte planejamento de todas as atividades de testes, iremos compreender que os testes de validação estão basicamente divididos em testes de baixo nível e de alto nível. 
 
Iremos identificar para cada um dos níveis os testes relacionados, suas características e quando são aplicados. 
 
*
*
*
*
*
*
Testes de baixo Nível : Caracterizados por exigirem dos profissionais de testes um profundo conhecimento da estrutura interna do produto.  
 
Testes de Alto Nível : Caractetizan-se por não requerem esse conhecimento da estrutura interna, possibilitando testes com maior grau de abstração.
 
*
Testes de baixo Nível : Caracterizados por exigirem dos profissionais de testes um profundo conhecimento da estrutura interna do produto.  
 
Testes de Alto Nível : Caractetizan-se por não requerem esse conhecimento da estrutura interna, possibilitando testes com maior grau de abstração.
 
*
*
Interface de módulo é testada para assegurar que as informações fluam corretamente para dentro e para fora da unidade do programa que está sendo testada.
 
A estrutura de dados local é examinada para garantir que os dados armazenados temporariamente mantenham sua integridade durante todos os passos na execução de um algoritmo.
 
Todos os caminhos independentes da estrutura de controle são usados para assegurar que todas as instruções em um módulo tenham sido executadas pelo menos uma vez. 
 
As condições limite são testadas para garantir que o módulo opere adequadamente nas fronteiras estabelecidas para restringir ou limitar o processamento.
 
Todos os caminhos de manipulação de erro são testados.
 
Casos de testes deverão ser projetados para descobrir erros devido a computações errôneas, comparações incorretas ou fluxo de controle inadequado. 
 
*
*
*
Não incremental (big-Bang): 
 
Neste tipo de abordagem todos os componentes são combinados com antecedência e o programa inteiro é testado de uma vez. Segundo Pressman, usualmente, o resultado desta abordagem é o caos, pois normalmente são encontrados muitos erros tornando a correção difícil, pois fica complicado isolar as causas dos erros. Uma vez corrigidos os erros, novos erros aparecem e o processo parece não ter fim.
 
 Incremental: Este tipo de abordagem é a antítese da abordagem big-bang. O programa é construído e testado em pequenos incrementos. Os erros são mais fáceis de isolar e corrigir e pode ser aplicada uma interface sistemática de testes. Neste contexto existem várias estratégias incrementais de integração: 
 
Integração descendente ou Top-down
Integração ascendente ou Botton-up
Teste de regressão
Teste fumaça
 
*
Não incremental (big-Bang): 
 
Neste tipo de abordagem todos os componentes são combinados com antecedência e o programa inteiro é testado de uma vez. Segundo Pressman, usualmente, o resultado desta abordagem é o caos, pois normalmente são encontrados muitos erros tornando a correção difícil, pois fica complicado isolar as causas dos erros. Uma vez corrigidos os erros, novos erros aparecem e o processo parece não ter fim.
 
 Incremental: Este tipo de abordagem é a antítese da abordagem big-bang. O programa é construído e testado em pequenos incrementos. Os erros são mais fáceis de isolar e corrigir e pode ser aplicada uma interface sistemática de testes. Neste contexto existem várias estratégias incrementais de integração: 
 
Integração descendente ou Top-down
Integração ascendente ou Botton-up
Teste de regressão
Teste fumaça
 
*
Não incremental (big-Bang): 
 
Neste tipo de abordagem todos os componentes são combinados com antecedência e o programa inteiro é testado de uma vez. Segundo Pressman, usualmente, o resultado desta abordagem é o caos, pois normalmente são encontrados muitos erros tornando a correção difícil, pois fica complicado isolar as causas dos erros. Uma vez corrigidos os erros, novos erros aparecem e o processo parece não ter fim.
 
 Incremental: Este tipo de abordagem é a antítese da abordagem big-bang. O programa é construído e testado em pequenos incrementos. Os erros são mais fáceis de isolar e corrigir e pode ser aplicada uma interface sistemática de testes. Neste contexto existem várias estratégias incrementais de integração: 
 
Integração descendente ou Top-down
Integração ascendente ou Botton-up
Teste de regressão
Teste fumaça
 
*
Não incremental (big-Bang): 
 
Neste tipo de abordagem todos os componentes são combinados com antecedência e o programa inteiro é testado de uma vez. Segundo Pressman, usualmente, o resultado desta abordagem é o caos, pois normalmente são encontrados muitos erros tornando a correção difícil, pois fica complicado isolar as causas dos erros. Uma vez corrigidos os erros, novos erros aparecem e o processo parece não ter fim.
 
 Incremental: Este tipo de abordagem é a antítese da abordagem big-bang. O programa é construído e testado em pequenos incrementos. Os erros são mais fáceis de isolar e corrigir e pode ser aplicada uma interface sistemática de testes. Neste contexto existem várias estratégias incrementais de integração: 
 
Integração descendente ou Top-down
Integração ascendente ou Botton-up
Teste de regressão
Teste fumaça
 
*
Não incremental (big-Bang): 
 
Neste tipo de abordagem todos os componentes são combinados com antecedência e o programa inteiro é testado de uma vez. Segundo Pressman, usualmente, o resultado desta abordagem é o caos, pois normalmente são encontrados muitos erros tornando a correção difícil, pois fica complicado isolar as causas dos erros. Uma vez corrigidos os erros, novos erros aparecem e o processo parece não ter fim.
 
 Incremental: Este tipo de abordagem é a antítese da abordagem big-bang. O programa é construído e testado em pequenos incrementos. Os erros são mais fáceis de isolar e corrigir e pode ser aplicada uma interface sistemática de testes. Neste contexto existem várias estratégias incrementais de integração: 
 
Integração descendente ou Top-down
Integração ascendente ou Botton-up
Teste de regressão
Teste fumaça
 
*
Não incremental (big-Bang): 
 
Neste tipo de abordagem todos os componentes são combinados com antecedência e o programa inteiro é testado de uma vez. Segundo Pressman, usualmente, o resultado desta abordagem é o caos, pois normalmente são encontrados muitos erros tornando a correção difícil, pois fica complicado isolar as
causas dos erros. Uma vez corrigidos os erros, novos erros aparecem e o processo parece não ter fim.
 
 Incremental: Este tipo de abordagem é a antítese da abordagem big-bang. O programa é construído e testado em pequenos incrementos. Os erros são mais fáceis de isolar e corrigir e pode ser aplicada uma interface sistemática de testes. Neste contexto existem várias estratégias incrementais de integração: 
 
Integração descendente ou Top-down
Integração ascendente ou Botton-up
Teste de regressão
Teste fumaça
 
*
Não incremental (big-Bang): 
 
Neste tipo de abordagem todos os componentes são combinados com antecedência e o programa inteiro é testado de uma vez. Segundo Pressman, usualmente, o resultado desta abordagem é o caos, pois normalmente são encontrados muitos erros tornando a correção difícil, pois fica complicado isolar as causas dos erros. Uma vez corrigidos os erros, novos erros aparecem e o processo parece não ter fim.
 
 Incremental: Este tipo de abordagem é a antítese da abordagem big-bang. O programa é construído e testado em pequenos incrementos. Os erros são mais fáceis de isolar e corrigir e pode ser aplicada uma interface sistemática de testes. Neste contexto existem várias estratégias incrementais de integração: 
 
Integração descendente ou Top-down
Integração ascendente ou Botton-up
Teste de regressão
Teste fumaça
 
*
Não incremental (big-Bang): 
 
Neste tipo de abordagem todos os componentes são combinados com antecedência e o programa inteiro é testado de uma vez. Segundo Pressman, usualmente, o resultado desta abordagem é o caos, pois normalmente são encontrados muitos erros tornando a correção difícil, pois fica complicado isolar as causas dos erros. Uma vez corrigidos os erros, novos erros aparecem e o processo parece não ter fim.
 
 Incremental: Este tipo de abordagem é a antítese da abordagem big-bang. O programa é construído e testado em pequenos incrementos. Os erros são mais fáceis de isolar e corrigir e pode ser aplicada uma interface sistemática de testes. Neste contexto existem várias estratégias incrementais de integração: 
 
Integração descendente ou Top-down
Integração ascendente ou Botton-up
Teste de regressão
Teste fumaça
 
*
Não incremental (big-Bang): 
 
Neste tipo de abordagem todos os componentes são combinados com antecedência e o programa inteiro é testado de uma vez. Segundo Pressman, usualmente, o resultado desta abordagem é o caos, pois normalmente são encontrados muitos erros tornando a correção difícil, pois fica complicado isolar as causas dos erros. Uma vez corrigidos os erros, novos erros aparecem e o processo parece não ter fim.
 
 Incremental: Este tipo de abordagem é a antítese da abordagem big-bang. O programa é construído e testado em pequenos incrementos. Os erros são mais fáceis de isolar e corrigir e pode ser aplicada uma interface sistemática de testes. Neste contexto existem várias estratégias incrementais de integração: 
 
Integração descendente ou Top-down
Integração ascendente ou Botton-up
Teste de regressão
Teste fumaça
 
*
Não incremental (big-Bang): 
 
Neste tipo de abordagem todos os componentes são combinados com antecedência e o programa inteiro é testado de uma vez. Segundo Pressman, usualmente, o resultado desta abordagem é o caos, pois normalmente são encontrados muitos erros tornando a correção difícil, pois fica complicado isolar as causas dos erros. Uma vez corrigidos os erros, novos erros aparecem e o processo parece não ter fim.
 
 Incremental: Este tipo de abordagem é a antítese da abordagem big-bang. O programa é construído e testado em pequenos incrementos. Os erros são mais fáceis de isolar e corrigir e pode ser aplicada uma interface sistemática de testes. Neste contexto existem várias estratégias incrementais de integração: 
 
Integração descendente ou Top-down
Integração ascendente ou Botton-up
Teste de regressão
Teste fumaça
 
*
Testes de baixo Nível : Caracterizados por exigirem dos profissionais de testes um profundo conhecimento da estrutura interna do produto.  
 
Testes de Alto Nível : Caractetizan-se por não requerem esse conhecimento da estrutura interna, possibilitando testes com maior grau de abstração.
 
*
Não incremental (big-Bang): 
 
Neste tipo de abordagem todos os componentes são combinados com antecedência e o programa inteiro é testado de uma vez. Segundo Pressman, usualmente, o resultado desta abordagem é o caos, pois normalmente são encontrados muitos erros tornando a correção difícil, pois fica complicado isolar as causas dos erros. Uma vez corrigidos os erros, novos erros aparecem e o processo parece não ter fim.
 
 Incremental: Este tipo de abordagem é a antítese da abordagem big-bang. O programa é construído e testado em pequenos incrementos. Os erros são mais fáceis de isolar e corrigir e pode ser aplicada uma interface sistemática de testes. Neste contexto existem várias estratégias incrementais de integração: 
 
Integração descendente ou Top-down
Integração ascendente ou Botton-up
Teste de regressão
Teste fumaça
 
*
Não incremental (big-Bang): 
 
Neste tipo de abordagem todos os componentes são combinados com antecedência e o programa inteiro é testado de uma vez. Segundo Pressman, usualmente, o resultado desta abordagem é o caos, pois normalmente são encontrados muitos erros tornando a correção difícil, pois fica complicado isolar as causas dos erros. Uma vez corrigidos os erros, novos erros aparecem e o processo parece não ter fim.
 
 Incremental: Este tipo de abordagem é a antítese da abordagem big-bang. O programa é construído e testado em pequenos incrementos. Os erros são mais fáceis de isolar e corrigir e pode ser aplicada uma interface sistemática de testes. Neste contexto existem várias estratégias incrementais de integração: 
 
Integração descendente ou Top-down
Integração ascendente ou Botton-up
Teste de regressão
Teste fumaça
 
*
Série de diferentes testes cuja finalidade é exercitar totalmente o sistema: e que apesar de terem finalidades diferentes, todos funcionam no sentido de verificar se os elementos do sistema foram integrados adequadamente e executam as suas funções corretamente: 
 
Teste de recuperação
Teste de segurança
Teste de esforço (estresse)
Teste de desempenho
*
Série de diferentes testes cuja finalidade é exercitar totalmente o sistema: e que apesar de terem finalidades diferentes, todos funcionam no sentido de verificar se os elementos do sistema foram integrados adequadamente e executam as suas funções corretamente: 
 
Teste de recuperação
Teste de segurança
Teste de esforço (estresse)
Teste de desempenho
*
Série de diferentes testes cuja finalidade é exercitar totalmente o sistema: e que apesar de terem finalidades diferentes, todos funcionam no sentido de verificar se os elementos do sistema foram integrados adequadamente e executam as suas funções corretamente: 
 
Teste de recuperação
Teste de segurança
Teste de esforço (estresse)
Teste de desempenho
*
Teste Alfa
 
É conduzido na instalação do desenvolvedor por um grupo representativo de usuários finais. O software é utilizado em um cenário natural e realizado em conjunto desenvolvedores e usuários, registrando os erros e os problemas de uso. Este tipo de teste normalmente é conduzido em um ambiente controlado. 
 
Teste Beta
 
O teste Beta é conduzido nas instalações de um ou mais usuários finais e neste tipo de teste o desenvolvedor não deverá estar presente. O cliente registra todos os problemas encontrados durante o teste e vai relatando para o desenvolvedor em intervalos regulares. Com o resultado do teste beta, os desenvolvedores fazem as modificações necessárias e preparam a liberação do software para todos os clientes.
 
Existem muitas empresas que colocam versões beta de seus softwares na internet para que os usuários possam fazer o teste com o novo produto que neste caso, ainda não foi lançado oficialmente. 
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais