Estratégias de Teste de
Software


Uma estratégia de teste de software
integra métodos de projeto de casos de
teste numa série bem planejada de
passos, que resultam na construção de
um software bem
sucedido
A estratégia de teste fornece um roteiro
que descreve os passos a serem
conduzidos como parte do teste
Estratégias de Teste de
Software

Planejamento de teste







Passos a serem executados
Esforço
Tempo
Recursos necessários
Projeto de casos de teste
Execução de teste
Coleta e avaliação de dados
Estratégias de Teste de
Software

Quem faz?




Gerente de projeto
Analistas de software
Especialistas em teste
Porque é importante?

Se é conduzido ao acaso, tempo é
desperdiçado, esforço desnecessário é
despendido e erros se infiltram sem serem
descobertos.
Estratégias de Teste de
Software

Qual é o produto do trabalho?


Uma especificação de teste que documenta
abordagem da equipe de software para o
teste, definindo um plano que define
estratégias e passos específicos de testes e os
testes que serão conduzidos
Como garanto que fiz corretamente?

Revisando a especificação de teste antes do
mesmo, avaliando a completeza dos casos e
das tarefas de teste
Características Genéricas de uma
Estratégia de Teste




O teste começa em um nível de componente e
prossegue para fora, em direção à integração de todo
o sistema baseado em computador.
Diferentes técnicas de testes são adequadas em
diferentes momentos.
O teste é conduzido pelo desenvolvedor do software
e, para grandes projetos, por um grupo
independente.
O teste e a depuração são atividades diferentes, mas
a depuração deve ser acomodada em qualquer
estratégia de teste.
Verificação e Validação (V&V)

Verificação

Conjunto de atividades que garante que o
software implementa corretamente uma função
específica.
“Estamos construindo o produto
corretamente?”

Validação

Conjunto de atividades diferente que garante que
o software construído corresponde aos requisitos
do cliente.
“Estamos construindo o produto certo?
Verificação e Validação (V&V)

verificação e validação abrangem um amplo
conjunto
de atividades SQA( garantia da qualidade de
SW),
que inclui: Revisões técnicas formais;
Auditoria de qualidade;
Monitoramento de
desempenho,
Simulação,
Estudo de viabilidade,
Revisões,
Análises e
Testes.
Estágios do Teste

Teste de Unidade: É aplicado para validar
os menores elementos testáveis do
software, as classes básicas e os
componentes, no modelo de
implementação. Verifica se os fluxos de
dados e de controle estão funcionando
como esperado.
Estágios do Teste

Teste de Integração: É executado para
garantir que os componentes do modelo
de implementação funcionam
apropriadamente quando combinados. O
teste de integração revela partes
incompletas ou erros na interface entre os
pacotes.
Estágios do Teste

Teste de validação:Os requisitos
estabelecidos como parte da análise
de requisitos são validados em
contraste com o software que acabou
de ser construído.
Estágios do Teste

Teste de sistema: O software os outros
elementos do sistema são testados como
um todo.
Teste de Unidade
São testadas :
 Interfaces
 Estruturas lógicas de dados
 Condições limite
 Caminhos independentes
 Caminhos de manipulação de erros
Teste de Unidade
Erros mais comuns:
 Precedência aritmética incorreta
 Operações em modo misto
 Inicialização incorreta
 Falta de precisão
 Representação incorreta de uma
expressão simbólica
Teste de Unidade
Problemas quanto a manipulação de erros:
1- a descrição do erro é ininteligível
2- o erro mencionado não corresponde ao erro
encontrado.
3- a condição de erro provoca a intervenção do
sistema antes da manipulação do erro.
4- o processamento da condição de exceção está
incorreto.
5- a descrição do erro não fornece informação
suficiente para ajudar na localização da causa
do erro.
Procedimentos de Teste de Unidade
Elaborar um componente
 pseudocontrolador, ou

Pseudocontrolado
Pseudocontrolador

Programa que aceita dados do caso de teste
e passa tais dados ao componente (a ser
testado) e imprime resultados relevantes.
Pseudocontrolado

Substituem módulos que são subordinados
(chamados pelo)
componente a ser
testado.
Teste de Integração
“Se todos os módulos funcionam
individualmente,
porque você duvida que vão funcionar,
quando colocados em conjunto?”
O problema é exatamente esta interface entre
os módulos pois:


Um módulo pode ter um efeito imprevisto ou
adverso sobre o outro;
Subfunções quando combinadas podem não
produzir a função principal desejada;
Teste de integração é necessário pois conduz
testes para descobrir erros associados a esta
interface.
Abordagens do Teste de Integração

Big-Bang

Integração descendente ( top_down)

Integração ascendente (botom_up)
Big-Bang:

O programa inteiro é testado de uma só
vez.
Normalmente resulta em caos!
Integração descendente
( top_down)



É uma abordagem incremental para a
construção da estrutura de um
programa.
Os módulos são integrados movendose descendentemente pela hierarquia
de controle, começando com o módulo
principal.
Os módulos subordinados podem ser
incorporados à estrutura primeiro-emprofundidade ou primeiro-em-largura.
Integração ascendente
(botom_up)



Começa a construção e testes com
módulos atômicos.
Os componentes são integrados de baixo
para cima.
A necessidade de pseudocontrolados é
eliminada
Teste de regressão


Cada vez que um módulo novo é
adicionado como parte do teste de
integração, o software se modifica.
Estas modificações podem causar
problemas em funções que antes
funcionavam sem problemas.
O teste de regressão é a re-execução
de um subconjunto de testes que já
foram conduzidos para garantir que as
modificações não produzam efeitos
indesejáveis
Teste de Validação
Verifica se o software funciona como esperado pelo cliente.
Formas de se validar:
Teste da caixa-preta: demonstra conformidade com os
requisitos ( definir classes de testes, casos de teste)
Revisão da configuração: certificar-se de que todos os
elementos da configuração do software tenham sido
adequadamente desenvolvidos e catalogados e tenham
detalhes que permitam apoiar a fase de suporte ao ciclo de
vida.
Teste Alfa e Beta: conduzidos pelo cliente.
- No teste alfa o desenvolver está presente.
- O teste Beta é conduzido pelo cliente em seu ambiente,
sem o desenvolvedor estar presente.
Teste de Sistema
É um série de diferentes testes cuja finalidade principal
é exercitar por completo o sistema baseado em
computador.
Teste de recuperação
 Força o software a falhar e verifica se a recuperação
é adequadamente realizada.
Teste de segurança
 Verifica se os mecanismos de proteção incorporados
a um sistema vão protegê-lo de invasão imprópria.
Teste de estresse
 Executa um sistema de modo que demanda recursos
em quantidade, freqüência e volumes anormais.
Teste de desempenho
 Testa o desempenho do software durante a
execução, no contexto de um sistema integrado.
Outras categorias de Teste
Tipos de Teste


Teste de Funcionalidade: Enfatiza a
validação das funcionalidades requeridas
nos serviços, métodos e use cases.
Teste de Integridade: Avalia a robustez
(resistência à falhas) do sistema, a
flexibilidade da linguagem, a sintaxe e a
usabilidade do código.
Tipos de Teste


Teste de Carga: Avalia a resposta do
sistema em condições extremas de carga de
informações. Um teste de carga é, na
verdade, um teste de performance voltado
para a avaliação do sistema em condições
extremas ou de limite.
Teste de Performance: Monitora o perfil do
tempo, incluindo execução de fluxo, acesso a
dados, funcionalidade e chamadas ao sistema
para identificar o gargalo e processos
ineficazes.
Tipos de Teste

Teste de Configuração: Assegura as
funcionalidades pretendidas dos diferentes
hardwares e/ou softwares de
configuração.
Tipos de Teste


Teste de Ciclo de Negócios - Garante que o
sistema funciona apropriadamente durante um
ciclo de atividades relativas ao negócio e que ao
final desse ciclo todos os resultados esperados
foram obtidos.
Teste de Interfaces do Usuário - Assegura
que o comportamento, requisitos, projeto
gráfico e navegacional definidos







Teste de Recuperação de Falhas Garante que o sistema atende aos
requisitos definidos para recuperação
de falhas. Normalmente as seguintes
situações são abordadas:
Falta de energia no cliente;
Falta de energia no servidor;
Perda da comunicação cliente-servidor;
Problemas no sistema operacional;
Problemas de endereçamento de memória;
Ou qualquer outro erro que faça com que o
sistema aborte de forma abrupta sua
execução.
Tipos de Teste


Teste de Instalação: Assegura a instalação,
como desejada, nos diferentes hardwares e/ou
softwares de configuração e sob diferentes
condições como, por exemplo, espaço em disco
insuficiente.
Teste de Estrutura: Focaliza a avaliação do
design. Normalmente é realizado para
aplicações voltadas para a Web, garantindo que
todos os links estejam conectados.
Tipos de Teste


Teste de Concorrência: Valida a
capacidade do sistema de lidar com
múltiplos atores requisitando recursos
(dados, memória) ao mesmo tempo
Teste de Usabilidade: Focaliza nos
fatores humanos, estética, consistência
da interface com o usuário, help on-line
e agentes, manual e material de
treinamento
Download

Teste de Integração