27
Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue “para fora” na direção da integração de todo o sistema baseado em computador diferentes técnicas de teste são apropriadas e diferentes pontos do tempo a atividade de teste é realizada pela equipe de desenvolvimento ou por um grupo de teste independente atividades de teste e de depuração são diferentes, a depuração deve ser acompanhada de uma estratégia de teste

Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Embed Size (px)

Citation preview

Page 1: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Abordagem Estratégica ao Teste de Software

• A atividade de teste inicia-se no nível de módulos e prossegue “para fora” na direção da integração de todo o sistema baseado em computador

• diferentes técnicas de teste são apropriadas e diferentes pontos do tempo

• a atividade de teste é realizada pela equipe de desenvolvimento ou por um grupo de teste independente

• atividades de teste e de depuração são diferentes, a depuração deve ser acompanhada de uma estratégia de teste

Page 2: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Uma Estratégia de Teste de Software

• Uma estratégia de teste de software pode ser vista como uma espiral

• o teste unitário inicia-se no vértice da espiral e concentra-se em cada unidade do software de acordo com o que é implementado no código fonte

• teste de integração - a atenção concentra-se no projeto e na construção da arquitetura do software

Page 3: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

A

U

D

IV

R

ST

SEngenharia de Sistema

Requisitos

Projeto

Código

Teste de Unidade

Teste de IntegraçãoTeste de Validação

Teste de Sistema

Estratégia de TesteEstratégia de Teste

Page 4: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Uma Estratégia de Teste 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

Page 5: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Verificação e Validação

• Verificação - conjunto de atividades que garante que o software implemente corretamente uma função específica

Estamos construindo certo o produto?• Validação refere-se a um conjunto de atividades

que garante que o software foi construído de acordo com as exigências do cliente

Estamos construindo o produto certo?

Page 6: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Teste de Unidade

• A interface com o módulo é testada para ter a garantia de que as informações fluem para dentro e para fora da unidade de programa que se encontra sob teste (testes de caixa branca)

• estrutura de dados local é examinada

• condições limites são testadas

• caminhos independentes são exercitados

• caminhos de tratamento de erros são testados

Page 7: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Erros mais comuns

• Precedência aritmética incorreta

• inicialização incorreta

• erro de precisão

• representação simbólica incorreta de uma expressão

• variáveis de laço impropriamente modificadas

Page 8: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Erros mais comuns

Casos de teste devem descobrir erros de fluxo de controle e comparações:

• comparação de diferentes tipos de dados• operadores lógicos ou precedência incorreta• expectativa de igualdade quando um erro de precisão torna a igualdade

improvável• comparação ou variável incorreta• término de laço impróprio ou inexistente• variáveis de laço impropriamente modificadas

Page 9: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Erros mais comuns

Um bom projeto determina que as condições de erro sejam antecipadas e que caminhos de tratamento de erros sejam estabelecidos para re-orientar ou terminar o processamento de forma clara quando um erro ocorrer.

Page 10: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

No tratamento de erros deve ser testado:

a descrição do erro é inteligívelo erro apontado não corresponde ao erro encontradoa condição de erro provoca intervenção no sistema

antes do tratamento do erroo processamento das condições de exceção é incorretoa descrição do erro não oferece nenhuma informação

que ajude na localização da causa do erro

Page 11: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Teste de Unidade

Driver

Módulo a ser testado

StubStub

Resultados

Casos de teste

InterfaceCondições de limiteEstrutura de dados locaisCaminhos independentesCaminhos de manipulação de erros

Page 12: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Teste de Integração

Se todos os módulos funcionam individualmente porque se tem dúvida de que eles funcionarão quando colocados juntos?

• Dados podem ser perdidos ao longo da interface

• um módulo pode ter um efeito inesperado

• funções quando combinadas podem não produzir a função principal esperada

Page 13: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Teste de Integração

• imprecisão individualmente aceitável pode ser ampliada até níveis inaceitáveis

• estruturas de dados globais podem apresentar problemas

são usados testes de caixa preta

Page 14: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Teste de Integração

O objetivo do teste de integração é a partir dos módulos testados no nível de unidade construir a estrutura de programa que foi determinada pelo projeto.

– Integração big-bang o programa completo é testado como um todo

– Integração incremental o programa é construído e testado em pequenos segmentos, os erros são mais fáceis de serem encontrados e corrigidos

Page 15: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Estratégias de Integração Top-downEstratégias de Integração Top-down

M1

M3

M7

M4M2

M5 M6

M8

Os módulos são integrados movimentando-se de cima para baixo

módulos subordinados podem ser incorporados de uma maneira depth-first ou breadth-first

Page 16: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Estratégias de Integração Top-downEstratégias de Integração Top-down

• O módulo controle principal é usado como driver de testes

• stubs subordinados são substituídos um de cada vez por módulos reais

• testes são realizados a cada módulo integrado

• testes de regressão

Page 17: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Integração Bottom-upIntegração Bottom-up

M1

M3M2

os módulos são integrados movimentando-se de baixo para cima

D1D2

Cluster

Page 18: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Teste de Integração

Quando o teste de integração é feito o analista deve identificar os módulos críticos. O módulo crítico se caracteriza por:

• abordar diversos requisitos do software• tem elevados níveis de controle• é complexo ou propenso a erros• tem requisitos de desempenho definidosconcentre testes de regressão em módulos críticos

Page 19: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

• Depois da integração os critérios de validação especificados na análise de requisitos devem ser testados, ele garante exigências funcionais, comportamentais e de desempenho. São usadas técnicas de caixa preta. Após a realização do teste:

as características de função ou desempenho conformam-se as especificações e são aceitas

um desvio é descoberto e uma lista de deficiências é criada

Estratégia de TesteEstratégia de Teste

Page 20: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

• Capacitam o cliente a validar todos os requisitos. Realizado pelo usuário final e não pelo desenvolvedor do sistema.

Teste alfa - é levado a efeito por um cliente nas instalações do desenvolvedor. Erros e problemas serão registrados durante a interação.

Teste beta - é realizado nas instalações do cliente pelo usuário final. A interação não é controlada pelo desenvolvedor, problemas encontrados são relatados posteriormente ao desenvolvedor.

Testes de AceitaçãoTestes de Aceitação

Page 21: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

O teste de sistema procura verificar se elementos como hardware, pessoas, bancos de dados, etc estão adequados em função do desempenho global do sistema.

Projete casos de teste que simulem todas as entradas de dados de outros sistemas

realize testes simulando dados ruins ou erros em potencial para a interface

registre e documente o caso de testesparticipe do planejamento para garantir que o teste seja adequado

Estratégia de TesteEstratégia de Teste - - teste de sistemateste de sistema

Page 22: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Força o software a falhar de diversas maneiras verificando se a recuperação é adequadamente executada.

Estratégia de TesteEstratégia de Teste - - teste de teste de recuperaçãorecuperação

Page 23: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Tenta verificar se todos os mecanismos de proteção embutidos em um sistema protegerão, de fato, acessos indevidos.

Estratégia de TesteEstratégia de Teste - - teste de segurançateste de segurança

O papel do projetista do sistema é fazer com que o acesso custe mais do que o valor da informação que será obtida

Page 24: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

Executa o sistema de forma a exigir recursos em quantidade, freqüência e volume anormais.

Estratégia de TesteEstratégia de Teste - - teste de estresseteste de estresse

Exemplo: Casos de teste que exigem máxima memória

Page 25: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

É realizado para testar o desempenho de run-time do software dentro do contexto de um sistema integrado. Ocorre ao longo de todos os processos de teste, porém só quando todos os módulos estão interligados é que o desempenho real pode ser verificado.

Estratégia de TesteEstratégia de Teste - - teste de desempenhoteste de desempenho

Page 26: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

A

U

D

IV

R

ST

SEngenharia de Sistema

Requisitos

Projeto

Código

Teste de Unidade

Teste de IntegraçãoTeste de Validação

Teste de Sistema

Estratégia de TesteEstratégia de Teste

Page 27: Abordagem Estratégica ao Teste de Software A atividade de teste inicia-se no nível de módulos e prossegue para fora na direção da integração de todo o

1. Descreva a diferença entre validação e verificação

2. Liste alguns problemas que poderiam estar associados a criação de um grupo de testes independente.

3. Se voc ê pudesse escolher 3 métodos de projeto de caso de teste para aplicar durante os testes de unidade quais seriam eles?

4. Quem deve realizar o teste de validação do software o desenvolvedor ou o usuário do software?